#SqlServer、Oracle、MySQL不同語法 2 ——將排序字段爲null的排到後面、Order by詳解

1.將排序字段爲null的排到後面

之前在網上查了一下,發現很多文章介紹的都是這三種數據庫使用不同的語法解決,比較麻煩。
下面的介紹的是一種通用的,較爲簡單,故記錄一下。

1.1使用場景:當需要將字段爲null排到後面時所使用。
1.2代碼實例
select name,排序字段
from table1
where id = 106  
order by case when 排序字段 is null then 1 else 0 end asc,排序字段 asc

2.Order by 詳解

其中accountorder字段有null值也有非null值

在order by 中使用Case語句時,如果排序是按照ASC的話,會將不滿足條件的結果集無序地放在總結果集的前面,然後將滿足條件的結果集排序後附件到總結果集中,如果使用DESC的話,則將滿足條件的結果集放在總結果集的前面,然後將爲滿足條件的結果集無序地附加到總結果集後面
這就是爲什麼後面還有加一個排序字段 asc的原因

附加小知識:order by 多個字段的邏輯:想排序最前面的,然後後面的排序不能違背前面字段的排序邏輯。只能在前面字段排序的邏輯允許下,再次進行排序。

及時總結,提高效率,不用加晚班

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章