order by用法

理所当然,你也能够使用nulls first 也许nulls last 语法来支配NULL的地点。
Nulls first和nulls last是Oracle Order by帮忙的语法
要是Order by 中内定了表明式Nulls
first则代表null值的笔录将排在最前(不管是asc 依旧 desc)
即使Order by 中钦命了表明式Nulls last则象征null值的笔录将排在最后(不管是asc 依然 desc)
动用语法如下:
–将nulls始终位于最前
select * from zl_cbqc order by cb_ld nulls first
–将nulls始终位于最终
select * from zl_cbqc order by cb_ld desc nulls last

SQL> select * from tb;

SELECT *
FROM MYTEST
OKoleosDEHaval BY DECODE(SIGN(A- B), 0, 一,
-1, 二,
三);排序规则为A=B时,满意那条规则的消息排第贰个人,A<B则排第叁位。

自己又去试了一条语句,结果如下

2、两种排序的写法
单列升序:select<column_name> from <table_name> order by
<column_name>; (私下认可升序,纵然不写ASC)


叁、前些天收看的新写法

SQL>  select * from tb order by decode(blogid,3,1,2);

小编今日的精通是这么的,通过decode()函数,BLOGID值为三的那条记下被转移为了一,而任何的笔录都以二,那么根据这些顺序排序,肯定BLOGID为三的这条记下永远在最终边了,不仅如此,注意到背后还加了个按BLOGID暗许升序排列,那也实属对于那多少个被DECODE转换为贰的笔录以来,根据它们的BLOGID升序排序

1、ORDER BY 中关于NULL的处理

         3 工作
         5 朋友
         1 人生
         2 学习

wildwave同学也给了个说法:“你将不胜decode精晓成前边select前边的列,依照那一列排序就好了。”

单列降序:select <column_name> from <table_name> order by
<column_name> desc; 
多列升序:select <column_one>, <column_two> from
<table_name> order by <column_one>,
<column_two>; 
多列降序:select <column_one>, <column_two> from
<table_name> order by <column_one> desc,
<column_two> desc; 
多列混合排序:select <column_one>, <column_two> from
<table_name> order by <column_one> desc,
<column_two> asc;

缺省拍卖,Oracle在Order by
时以为null是最大值,所以若是是ASC升序则排在最终,DESC降序则排在最前。

————————————————————上面为zxcvg博客中的新闻,下边为本人测试掌握内容—————————————————————————————————————————–

    BLOGID BLOGCLASS

    BLOGID BLOGCLASS 
———- —————————— 
        1 人生 
        2 学习 
        3 工作 
        5 朋友

    BLOGID BLOGCLASS 
———- —————————— 
        3 工作 
        1 人生 
        2 学习 
        5 朋友

此文来源于CSDN中zxcvg的博文

自身所说的正是上面金色的那句话。完毕的功能正是不管怎么着,BLOGID为三的值必须排在第贰个人,别的的记录依据BLOGID升序排序。

shiyiwan同学给自家的解说是那样的:“私下认可升序排序,blogid =
三时回去一,其余则赶回二, 所以blogid = 三的记录排在最前啊。”

和谐通过看下面别人写的文字,驾驭如下:

SQL> select * from tb order by decode(blogid,3,1,2), blogid;

相关文章