我使用以下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
之后的一个值,因此您可以指定一列(或任何其他valid expression):
ORDER BY
CASE
WHEN @SortID='name' OR ISNULL(@SortID,'')=''
THEN SName
WHEN @SortID ='Hroom'
THEN Hroom END,
DateEnrolledTo desc