Oracle-20-is null使用&order by子句

来源:互联网 发布:java和net就业前景 编辑:程序博客网 时间:2024/06/06 09:07

一、IS NULL使用

有时,你可能想要编写显示在特定列中包含NULL值(表示未知的值)的行,你可以使用IS NULL。

 

比如:

SQL>select empno, ename, comm from emp where commis null;

 

二、Order by子句

利用Order by子句对查询的结果进行排序。ASC(ascending order)为升序排序,也是系统默认的排序。DESC(descendingorder)为降序排序。

 

语法格式:

(其中列名1为需要查询的列,列名2为按照该列进行排序)

1.升序排序

select 列名1 from 表名 order by 列名2 ASC;

 

2.降序排序

select 列名1 from 表名order by 列名2 DESC;

 

提问:如果老板想要查看工资在1500以上,且工资按照从高到低排序进行查询。

SQL>select empno, ename, sal from emp

2 where sal >=1500 order by sal desc

 

1:在当前student表中查询出年龄大于21岁的学生信息,且要求查询结果按照年龄降序排序。

解:先查询当前student表中的所有信息:


再查询出所有年龄大于21的学生信息,且查询结果按照sage列降序排序:


【注意】千万不要先写order by再写where,如下图:


因为按照逻辑来说,肯定是先筛选(where)再排序(order by),所以上图先排序再筛选是错误语法!

 

2:要求根据emp表查询出来的结果

按照empno, ename降序且sal升序排列。

(对多个列同时排序)

解:升序可不写asc:

SQL>select empno,ename,sal from order by empno desc,ename desc,sal;

 

3:如何按照别名进行排序

解:SQL>select empno a,ename from emp order by a;

其中a是empno列的别名,那么order by a就是将查询结果按照empno列升序排列。

 

4:如何用列号来进行排序?

解:SQL>select empno, ename from emp order by 2;

其中empno和ename是查询的列,那么order by 2就是按照第2个列进行升序排序(不写asc也不写desc就是默认升序排序),即按照ename列排序。

0 0
原创粉丝点击