在 SQL Server 中首先按特定值排序

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

我一生都无法解决这个问题,请帮忙。我正在使用 SQL Server,我需要有关 ORDER BY 子句的帮助。

我想要这个..

ID     Name
--------------
1      Orange
2      Yellow
3      Green
4      Purple
5      Red

要这样订购

ID     Name
--------------
4      Purple   <-- This one first then ASC afterwards
3      Green
1      Orange
5      Red
2      Yellow        

有点像

ORDER BY ID=4, Name ASC

我以前在 MySQL 中使用字段,但你不能在 SQL Server 中使用它。

请帮忙。

sql sql-server
2个回答
13
投票

您可以在

CASE
子句中使用
ORDER BY

ORDER BY CASE WHEN ID = 4 THEN 0 ELSE 1 END ASC, 
         NAME ASC

0
投票

一种选择是使用

UNION

SELECT * FROM YourTable WHERE ID = 4
UNION
SELECT * FROM YourTable WHERE ID <> 4 ORDER BY Name ASC
© www.soinside.com 2019 - 2024. All rights reserved.