0

我想按 id asc、date asc 排序,但在有 NULL 的情况下,我希望这些值最后。因此,在下面的示例中,我真的想 1. 按 id 排序,2. 按日期排序,其中值不为空,然后 3) 按日期排序,最后列出值为 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 值位于最后,而不对非空值进行排序?

4

2 回答 2

5

试试这个:

SELECT id, date, value
FROM mytable
ORDER BY id, (CASE WHEN value IS NULL THEN 1 ELSE 0 END), date
于 2012-06-28T01:55:03.387 回答
1

在对非空值进行排序后,您可以使用UNION运算符将​​空值附加到结果集的底部:

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
于 2012-06-28T01:52:14.853 回答