我有一个查询,其中返回一个记录状态列。记录状态列有几个值,例如:“事件”、“已删除”等...
我需要按“事件”,然后“已删除”,然后等等对结果进行排序...
我目前正在创建 CTE 以带来每组记录,然后是 UNION ALL。有没有更好的动态方式来完成查询?
谢谢,
最佳答案
如需更多状态值,您可以执行以下操作:
WITH StatusOrders
AS
(
SELECT StatusOrderID, StatusName
FROM (VALUES(1, 'Active'),
(2, 'Deleted'),
...
n, 'last status')) AS Statuses(StatusOrderID, StatusName)
)
SELECT *
FROM YourTable t
INNER JOIN StatusOrders s ON t.StatusName = s.StatusName
ORDER BY s.StatusOrderID;
关于sql - TSQL Order By - 硬编码值列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14702927/