TSQL SELECT DISTINCT最后由ASC NULLS订购

时间:2013-01-16 11:41:26

标签: sql tsql select distinct sql-order-by

有:

SELECT DISTINCT TOP 100 * FROM mytable ORDER BY date ASC

如何使日期中的空值最后?

非常感谢。

1 个答案:

答案 0 :(得分:5)

有些数据库支持order by中最后一个NULL的语法,有些则不支持。所以,我用:

select distinct top 100 *
from MyTable
order by  (case when date is null then 1 else 0 end), date asc

或者,如果我不想输入那么多:

order by coalesce(date, '9999-12-12')  -- or something like that

您还可以将distinct放在子查询中:

select top 100 *
from (select distinct *
      from mytable
     ) t
order by (case when date is null then 1 else 0 end), date asc

假设date位于列列表中,则第一个版本应该有效。