Oracle:order_by子句

本文介绍了Oracle SQL中asc升序和desc降序的具体用法,包括如何对数值型、日期型字段进行排序,以及使用列名、别名、表达式、列号作为排序依据的方法。还讲解了NULL值处理、多字段排序规则,并通过实例展示了where子句与orderby子句结合使用的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、asc:升序排列(默认排序),及从小到大排列;若值相同,按oracle内置的校验规则排序。
     例:查询员工信息(编号、姓名、月薪、年薪),按月薪升序排序:
            select empno,emame,sal,sal*12
            from emp
            order by sal asc;
2、desc降序,及从大到小排序。     
例:查询员工信息(编号、姓名、月薪、年薪),按月薪降序排序:
            select empno,emame,sal,sal*12
            from emp
            order by sal desc;
3、排序不仅数值型可以,日期型也可以进行排序;日期型的降序是年近者在前,升序则相反;   
     例:查询员工信息,按入职日期降序排序:
           select empno,ename,sal,hiredate,sal*12 "年薪"
           from emp
           order by hiredate desc;
4、order_by后面不仅可以跟字段名,还可以跟列名、别名、表达式、列号(从1开始,在select子句后的第一列为1,以此类推)
(1)列名:
        例:查询员工信息,按入职日期降序排序:
           select empno,ename,sal,hiredate,sal*12 "年薪"
           from emp
           order by hiredate desc;
(2)别名:
        例:查询员工信息,按年薪降序排序:
          select empno,ename,sal,hiredate,sal*12 "年薪"
           from emp
           order by “年薪” desc;
(3)表达式:
         例:查询员工信息,按年薪降序排序:
         select empno,ename,sal,hiredate,sal*12 "年薪"
         from emp
         order by sal*12  desc;
(4)列号:
        例:查询员工信息,按年薪降序排序:
         select empno,ename,sal,hiredate,sal*12 "年薪"
         from emp
         order by 5 desc;
解析:从select开始数,empno为1,ename为2,年薪则为5
4、注意:排序中,oracle将null看成最大值。
5、注意order by和where同时出现时,order by要在最后。
     例:查询员工信息,按佣金降序排列:
           select *
           from emp
           where comm is not null
           order by comn desc;
6、若order by后跟多个字段排序,只有第一个字段值相同时,第二个排序才生效。
     例:查询员工信息,按工资降序排列,相同工资按员工入职时间降序排列:
           select *
           from emp
           order by sal desc,hiredate desc;
解析:只有当sal desc排序后,sal的值相同时,相同的值会按照hiredate desc进行排序。
7、综合练习select子句、where子句、order by子句:
     例:查询20号部门,且工资大于1500,按入职时间降序排序:
           select *
           from emp
           where (deptno=20) and (dal>1500)
           order by hiredate desc;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值