Mysql 排序null值 排序問題分析

2022-07-17 01:57:09 字數 681 閱讀 1962

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為空時則返回 張三 如...