**

1、给查询结果进行降序

**

按照员工的雇佣日期给员工进行降序查询

一道 SQL 一道排序 银行java笔试_sql


按照员工的编号进行升序查询

一道 SQL 一道排序 银行java笔试_升序_02


提示,对于升序或者降序操作查询可以通过所查询的位置号进行操作,如以下:

对员工的员工号进行降序查询可以这样写:

一道 SQL 一道排序 银行java笔试_sql_03


上面的写法在程序开发中会很有用,因为它指定的是位置,如果需要改变有可能会忘记改order by 后面的条件,给开发带来不少的麻烦。

练习:查询10号部门员工的员工编号,员工姓名和工资,并按照员工的工资进行升序操作。

一道 SQL 一道排序 银行java笔试_oracle_04


查询有提成员工的姓名,编号,工资和提成,并按照提成进行升序操作。

一道 SQL 一道排序 银行java笔试_sql_05


**

2、多个字段之间的排序操作

**

在实际的需求中,通常会遇到对多个字段进行排序的操作,比如在职工表emp中,按照部门编号进行升序排序,并按照工资进行降序操作排序。

一道 SQL 一道排序 银行java笔试_字段_06


**

3、按照子串进行排序操作

**

在hr用户中,有一张表为employees表,表中有一字段phone_number,我们知道,电话号码的长度一般至少为7位,通常为了增强客户的认可度,我们需要只查询表中phone_number字段的最后四个尾号,这样该怎做呢?而函数就可以帮我们很好的解决这一问题。来看示例:

一道 SQL 一道排序 银行java笔试_字段_07


**

4、函数TRANSLATE

**

语法格式:

translate(expr,from_string,to_string)

一道 SQL 一道排序 银行java笔试_oracle_08


translate函数的作用就是将字符串中的字符一一替换,如果被替换中的字符to_string在expr中找不到,将返回expr中的原字符,否则全部替换,如果from_string中有两个相同的字符,在to_string中以出现的第一个字符为标准。

如果to_string中的字符为空,则返回空值。如果to_string中对应的位置没有字符,from_string中的字符将会清除掉。

一道 SQL 一道排序 银行java笔试_升序_09


**

5、translate函数的作用体现,混合字符串排序

**

比如我们发现一个列中即有字母,又有数字,而我们的需求只是对其中的字母进行排序,TRANSLATE函数的作用就体现出来了。

示例:

先创建一个字母和数字的混合列。

一道 SQL 一道排序 银行java笔试_字段_10


按照字母进行升序排序

一道 SQL 一道排序 银行java笔试_升序_11


按照数字进行降序排列

一道 SQL 一道排序 银行java笔试_升序_12


这里使用了一个lpad函数,关于这个函数的使用,后续更新的博客中将会详细解释,在这里就不解释了。

**

6、空值排序处理

**

对于空值排序的处理,ORACLE提供了专门用于处理空值处理的两个关键词,分别是nulls first和nulls last

一道 SQL 一道排序 银行java笔试_升序_13


一道 SQL 一道排序 银行java笔试_字符串_14


**

7、根据条件取不同列中的值来进行排序

**

示例:有这么一种需求,需要查看员工工资在某个范围中的工资,并优先显示。

例如:查询工资在3000到4000之间的员工的工资,并优先显示。

一道 SQL 一道排序 银行java笔试_字符串_15