不想排序但最后想要空值

时间:2012-06-28 01:43:02

标签: sql tsql

我想通过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,而不对非空值进行排序?

2 个答案:

答案 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