【发布时间】:2020-09-08 08:43:02
【问题描述】:
我在 SQL SERVER DB 中有以下数据
需要订购。
根据优先级的具体值进行排序
- 优先级的第一个升序值 1,2,3,...
- 优先级为 0 的第二行最后显示
按优先级排序后,优先级相同的行将按字母顺序排列
所以预期的输出是
我已经完成了以下代码
SELECT SERVICELONGNAME,SERVICEPRIORITYID FROM SERVICE
ORDER BY
CASE
WHEN SERVICEPRIORITYID > 0 THEN 0 ELSE 1
END
,SERVICELONGNAME ASC
enter code here
但在这种情况下,优先级为 0 的行显示在底部,但对于 SERVICEPRIORITYID 1、2、3、4,它是混乱的。
请有人告诉我需要进行哪些更改才能与所需的输出相匹配?
【问题讨论】:
-
您的查询似乎不错,但您的第二个
order by是SERVICELONGNAME而不是SERVICEPRIORITYID -
@HoneyBadger 这不会按字母顺序对具有相同优先级的值进行排序
标签: sql .net sql-server tsql sql-order-by