oracle中的 order by


现有的一个表:

 

  • 单个字段的升序排列,默认是升序,也可以是 asc;降序排列,desc;

 

 

 

 

  • oracle在order by时认为null是最大值, 所以如果是asc升序则排在最后, desc降序则排在最前.我们可以使用nulls first或者nulls last来控制null的位置;

 

 

 

 

  • 当对多个字段进行排序,选对 stuname降序排列,如果stuname相同,则按照stuid降序排列;

 

 

  • 结合函数 decode() 函数来使用

DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
  Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode 函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then 配对。如果value结果不等于给出的任何配对时,Decode 结果就返回else ;

  • stuid为8的排在第一位:
  • stuid为8的排在第一位,其他的按照stuid降序排列

 

 

 

  • stuname为 以A开头的最先显示,剩下的按照 stuname升序排列

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM