【发布时间】:2017-04-10 07:27:29
【问题描述】:
我正在使用 SQL Server 2008 R2。
我希望对表中的记录进行基于优先级的排序。
所以我在 ORDER BY 子句中使用 CASE WHEN 语句。 ORDER BY 子句如下:
ORDER BY
CASE WHEN TblList.PinRequestCount <> 0 THEN TblList.PinRequestCount desc, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
CASE WHEN TblList.HighCallAlertCount <> 0 THEN TblList.HighCallAlertCount desc, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
Case WHEN TblList.HighAlertCount <> 0 THEN TblList.HighAlertCount DESC, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
CASE WHEN TblList.MediumCallAlertCount <> 0 THEN TblList.MediumCallAlertCount DESC, TblList.LastName ASC, TblList.FirstName ASC, TblList.MiddleName ASC END,
Case WHEN TblList.MediumAlertCount <> 0 THEN TblList.MediumAlertCount DESC, TblList.LastName ASC, TblList.FirstName ASC, Patlist.MiddleName ASC END
但它给了Incorrect syntax near the keyword 'desc'
有什么解决办法吗?
我也可以:
TblList.PinRequestCount <> 0 and TblList.HighCallAlertCount <> 0 and
TblList.HighAlertCount <> 0` and TblList.MediumCallAlertCount <> 0 and
TblList.MediumAlertCount <> 0
同时。
【问题讨论】:
-
你能显示完整的查询吗?
-
你可以写 select * From TblList.
-
我猜你的查询中有 case 语句,对吧?
-
你能举个例子吗?
标签: sql sql-server sql-server-2008-r2