我有包含以下 ORDER BY
语句的 SQL 查询:
ORDER BY SName, DateEnrolledTo desc
我需要将其更改为
ORDER BY
CASE WHEN @SortID='name' OR ISNULL(@SortID,'')=''
THEN SName, DateEnrolledTo desc END,
CASE WHEN @SortID ='Hroom'
THEN Hroom, DateEnrolledTo desc END
此语法不正确,有人可以告诉我如何解决此问题吗?仅当我仅包含 1 列时,此方法才有效。我找不到任何存在这种情况的问题。
最佳答案
作为任何表达式CASE
在 THEN
yuo 可以指定一列(或任何其他 valid expression )之后,计算结果也为一个值:
ORDER BY
CASE
WHEN @SortID='name' OR ISNULL(@SortID,'')=''
THEN SName
WHEN @SortID ='Hroom'
THEN Hroom END,
DateEnrolledTo desc
关于SQL Server Order To 具有大小写和多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25666771/