我想通过id asc,date asc订购,但是在有NULL的情况下我想要那些值 持续。因此,在下面的示例中,我真的希望1.按ID排序,2。按日期排序asc,其中value不为null,然后3)按日期排序asc,列出最后一行值为NULL的行。
id date value
A12 6/21/2012 125
A12 6/15/2012 NULL
B11 5/28/2011 100
C12 4/23/2012 168
如何对值列进行排序,使NULL值为last,而不对非空值进行排序?
答案 0 :(得分:5)
试试这个:
SELECT id, date, value
FROM mytable
ORDER BY id, (CASE WHEN value IS NULL THEN 1 ELSE 0 END), date
答案 1 :(得分:1)
在对非空值进行排序后,可以使用UNION
运算符将NULL值附加到结果集的底部:
SELECT id, date, value
FROM tbl
WHERE value IS NOT NULL
ORDER BY id, date
UNION ALL
SELECT id, date, value
FROM tbl
WHERE value IS NULL
ORDER BY id, date