SQL Server:按2列排序(先获取ColumnX> Null,然后获得ID>按DESC排序)

问题描述 投票:0回答:2

我想根据2列的值从MSSQL Server检索记录:ColumnX和Id。

[首先,我想检索ColumnX的空记录(在顶部),然后按ID desc排序(我只需要在列表的顶部对ColumnX的空记录进行排序)。有可能做到这一点吗?当我尝试此查询时,我检索ColumnX的空值,但随后根据ColumnX值进行检索。但是,我想按ColumnX的空值后的ID列DESC进行排序。有什么主意吗?

SELECT Id, ColumnX 
FROM Table
ORDER BY ColumnX , Id DESC
sql sql-server database sql-server-2008 sql-server-2005
2个回答
0
投票

您可以在order by中包含多个表达式:

order by (case when x is null then 1 else 2 end),  -- put null values first
         id desc

0
投票

尝试一下:

SELECT ID, ColumnX 
FROM Table 
order by (case when ColumnX is null then 1 else 2 end),  
         ID DESC
© www.soinside.com 2019 - 2024. All rights reserved.