TSQL SELECT DISTINCT与order by ASC最后为空

TSQL SELECT DISTINCT与order by ASC最后为空,sql,tsql,select,distinct,sql-order-by,Sql,Tsql,Select,Distinct,Sql Order By,具有: 如何使日期中的空值持续到最后 非常感谢 有些数据库支持空值按顺序倒数的语法,有些则不支持。因此,我使用: SELECT DISTINCT TOP 100 * FROM mytable ORDER BY date ASC 或者,如果我不想输入这么多: select distinct top 100 * from MyTable order by (case when date is null then 1 else 0 end), date asc 您还可以将distinct放在子查

具有:

如何使日期中的空值持续到最后


非常感谢

有些数据库支持空值按顺序倒数的语法,有些则不支持。因此,我使用:

SELECT DISTINCT TOP 100 * FROM mytable ORDER BY date ASC
或者,如果我不想输入这么多:

select distinct top 100 *
from MyTable
order by  (case when date is null then 1 else 0 end), date asc
您还可以将distinct放在子查询中:

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

但是,假设该日期在列列表中,第一个版本应该可以使用。

有些数据库支持按顺序最后一个为空的语法,有些数据库则不支持。因此,我使用:

SELECT DISTINCT TOP 100 * FROM mytable ORDER BY date ASC
或者,如果我不想输入这么多:

select distinct top 100 *
from MyTable
order by  (case when date is null then 1 else 0 end), date asc
您还可以将distinct放在子查询中:

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

但是,假设该日期在列列表中,第一个版本应该可以工作。

只有最后一段代码子查询对我有效。在现实生活中,查询是巨大的,充满了连接,有没有其他方法可以在不更改选择部分的情况下按null最后排序?再次感谢@米盖尔马斯。你能问另一个问题吗,展示你的更多疑问?这个简单的例子缺少一些东西。另外,您使用的是什么版本的SQL Server?只有最后一段代码子查询对我有效。在现实生活中,查询是巨大的,充满了连接,有没有其他方法可以在不更改选择部分的情况下按null最后排序?再次感谢@米盖尔马斯。你能问另一个问题吗,展示你的更多疑问?这个简单的例子缺少一些东西。另外,您使用的是什么版本的SQL Server?