如何在SQL Server中以特定方式排序结果

时间:2013-08-08 18:35:03

标签: sql-server-2008

我有一个简单的查询,但我希望以特定的方式查看结果。我希望在结果的顶部看到“N / A”,而不必导致“Case When Then”

Select  *
From Ordertype

结果:

Car21
Car34
Bus42
N/A

谢谢,

3 个答案:

答案 0 :(得分:2)

ORDER BY没有“覆盖”,如果您想要要求的特定订单,则必须使用CASE

SELECT type
FROM OrderType
ORDER BY 
 CASE
    WHEN type = 'N/A' THEN 1
    ELSE 2
 END 
,type

答案 1 :(得分:1)

如果你想要一个不直接与列的结构(字母/数字)相关联的任意顺序,而是只有你知道的重要性,那么添加Rank列会很有用到你的桌子。

Column1 Rank
Car21   
Car34   2
Bus42   1
N/A     99

然后你可以做

select Column1 
from Table 
order by rank desc, column1

这会将高排名的项目放在排名较低的项目之前,然后当行没有排名时,它会按列1按字母顺序对它们进行排序

答案 2 :(得分:0)

你可以试试这个:

SELECT * FROM ordertype ORDER BY ID DESC 

看到最新的第1个