繁体   English   中英

SQL 服务器:按 2 列排序(先获取 ColumnX > Null,然后是 Id > 按 DESC 排序)

[英]SQL Server : Order By 2 Columns (get ColumnX > Null First and then Id > Order By DESC)

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

首先,我想检索 ColumnX 的 null 记录(在顶部),然后按 Id desc 排序(我只需要在列表顶部排序 ColumnX 的 null 记录)。 有可能做到这一点吗? 当我尝试此查询时,我检索 ColumnX 的 null 值,然后根据 ColumnX 值检索。 但是,我想在 ColumnX 的 null 值之后按 Id 列 DESC 排序。 任何想法?

SELECT Id, ColumnX 
FROM Table
ORDER BY ColumnX , Id DESC

您可以按以下order by包含多个表达式:

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

尝试这个:

SELECT ID, ColumnX 
FROM Table 
order by (case when ColumnX is null then 1 else 2 end),  
         ID DESC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM