mysq对存在null值的字段排序
生活随笔
收集整理的這篇文章主要介紹了
mysq对存在null值的字段排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.建立學生表,建表sql如下:
create table student(id int,name varchar(20),age int);2.插入幾條數據,包括id字段值為null的
insert into student values(1,'張三',10),(2,'李四',20),(3,'王五',29),(null,'趙六',30),(null,'周琦',40);3.我們查詢下,可以看到存在id字段為空的值: ?
? ? ??
4.對學生表按id排序
方法一:
select * from student order by -id desc;
方法二:
select * from student order by isnull(id),id;? ? ??
方法三:
select * from student order by coalesce(id,999999999999); /*(coalesce(id,999999999999)表示id為空時,返回999999999999這個值)*/
coalesce:返回參數中的第一個非空表達式(從左向右)
在mysql中沒有nvl()函數, 我們用coalesce()來代替。coalesce相比nvl優點是,coalesce中參數可以有多個,而nvl()中參數就只有兩個。
當然,在oracle中也可以使用 case when....then....else......end(比較強悍,case when 后可以跟表達式)
推薦使用方法二。
?
總結
以上是生活随笔為你收集整理的mysq对存在null值的字段排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《剑指offer》-数组中只出现一次的数
- 下一篇: css 单行文本溢出显示省略号