在SQL Server中的ORDER BY中使用if / case语句

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

我有一个存储过程来获取数据,并且当前按如下方式对其进行排序:

ORDER BY    dateEsc desc, prio desc, EID desc

有没有办法,我可以说如果prio =“紧急”然后把这样的记录放在我的结果的最顶部,只有剩余的记录适用上述顺序?

sql sql-server sql-order-by case
1个回答
3
投票

像下面这样的东西会起作用,因为当prio = 'Urgent'然后新条件将生成0 else 1并首先按此值排序;然后按其他条件排序......

ORDER BY CASE WHEN prio = "Urgent" THEN 0 ELSE 1 END,
    dateEsc desc, prio desc, EID desc
© www.soinside.com 2019 - 2024. All rights reserved.