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

一、IS NULL使用

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

 

比如:

SQL>select empno, ename, comm from emp where comm is 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值