nulls first和nulls last
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
–實例
1.order by col (asc/desc) NULLS LAST 不管col如何排序 col的null(空值) 總是在最后
SQL> WITH tab AS(
2 SELECT 1 id,’小明’ NAME,’開發中心’ dept FROM dual
3 UNION ALL
4 SELECT 2,’小張’,’開發中心’ FROM dual
5 UNION ALL
6 SELECT 3,’小王’,’開發中心’ FROM dual
7 UNION ALL
8 SELECT 4,’小麗’,’研發中心’ FROM dual
9 )
10 SELECT *
11 FROM (
12 SELECT ID, NAME, DEPT FROM tab
13 UNION ALL
14 SELECT NULL, DEPT, DEPT FROM tab GROUP BY DEPT
15 )
16 ORDER BY DEPT, ID NULLS LAST
17 /
ID NAME DEPT
1 小明 開發中心2 小張 開發中心3 小王 開發中心開發中心 開發中心4 小麗 研發中心研發中心 研發中心
已選擇6行。
2.order by col (asc/desc) NULLS first 不管col如何排序 col的null(空值) 總是在最前
SQL> edi
已寫入 file afiedt.buf
1 WITH tab AS(
2 SELECT 1 id,’小明’ NAME,’開發中心’ dept FROM dual
3 UNION ALL
4 SELECT 2,’小張’,’開發中心’ FROM dual
5 UNION ALL
6 SELECT 3,’小王’,’開發中心’ FROM dual
7 UNION ALL
8 SELECT 4,’小麗’,’研發中心’ FROM dual
9 )
10 SELECT *
11 FROM (
12 SELECT ID, NAME, DEPT FROM tab
13 UNION ALL
14 SELECT NULL, DEPT, DEPT FROM tab GROUP BY DEPT
15 )
16* ORDER BY DEPT, ID NULLS first
SQL> /
ID NAME DEPT
開發中心 開發中心1 小明 開發中心2 小張 開發中心3 小王 開發中心研發中心 研發中心4 小麗 研發中心
已選擇6行。
目的:
本來的目的是把部門相同的人員歸在一起
SQL> edi
已寫入 file afiedt.buf
1 WITH tab AS(
2 SELECT 1 id,’小明’ NAME,’開發中心’ dept FROM dual
3 UNION ALL
4 SELECT 2,’小張’,’開發中心’ FROM dual
5 UNION ALL
6 SELECT 3,’小王’,’開發中心’ FROM dual
7 UNION ALL
8 SELECT 4,’小麗’,’研發中心’ FROM dual
9 )
10 SELECT id||name
11 FROM (
12 SELECT ID, NAME, DEPT FROM tab
13 UNION ALL
14 SELECT NULL, DEPT, DEPT FROM tab GROUP BY DEPT
15 )
16* ORDER BY DEPT, ID NULLS last
SQL> /
ID||NAME
1小明
2小張
3小王
開發中心
4小麗
研發中心
已選擇6行。
總結
以上是生活随笔為你收集整理的nulls first和nulls last的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python Shapely包使用,实现
- 下一篇: DYA9面向对象中--super关键字