mysql中null值的排序問題分析
如下表t_user:
name age
zhangsan 1
lisi null
wangwu 2
www.2cto.com
執行一下sql:
sql**
select * from t_user order by age;
name age
lisi null
zhangsan 1
wangwu 2
實際上我們是想將沒有填寫age的記錄放在最後,我們可以
sql**
select * from t_user order by age is null, age;
name age
zhangsan 1
wangwu 2
lisi null
為什麼會這樣?可以這樣來理解:
sql**
select * from t_user order by age is null, age;
等價於:
sql**
select * from (select name, age, (age is null) as isnull from t_user) as foo order by isnull, age;
mysql 排序使null值排在最後
我們在使用排序 order by 的時候,如果使asc排序,發現null值的資料總會排在最前面。解決辦法 使用 is null,在需要null值排在後面的字段前加上 該欄位名 is null,例如 order by sort asc 改寫成 order by sort is null,sort as...
oracle 關於null值排序
在oracle中根據欄位來desc排序的話null值可能會在資料的最前面。然而有時候我們檢視資料的時候並不希望能夠在前面看到這些null值的排序資料。因此我查了一下 1.排序的時候運用nvl decode case.when.函式可以給null值指定乙個值去干擾他排序的位置,如果nvl xx,則是不...
Oracle排序中null值處理
1 預設處理 oracle 在order by 時預設認為null是最大值,所以如果是asc公升序則排在最後,desc降序則排在最前 2 使用nvl函式 nvl函式可以將輸入引數為空時轉換為一特定值,如 nvl employee name,張三 表示當employee name為空時則返回 張三 如...