Использование «Case When» в предложении «Order by», которое сортирует набор результатов по нескольким столбцам - PullRequest
2 голосов
/ 27 декабря 2011

Я хочу использовать Case When в предложении Order By, но хочу отсортировать набор результатов по нескольким столбцам. когда я использую следующий синтаксис, я получаю синтаксическую ошибку.

Select * From MyTable
   ORDER BY 
     CASE 
        WHEN @ColumnName='NameAndId' THEN Name,Id
        WHEN @ColumnName='TitleAndId' THEN Title,Id
    END Desc

Кто-нибудь знает правильный синтаксис?

спасибо

1 Ответ

6 голосов
/ 27 декабря 2011

Ваш регистр переключается только между Name и Title, поэтому вы можете убрать Id из регистра.

Не уверен, куда вы хотите подать desc. Это будет порядок на Name или Title по убыванию, а для связей он будет порядка Id по возрастанию.

Select * From MyTable
   ORDER BY 
     CASE 
        WHEN @ColumnName='NameAndId' THEN Name
        WHEN @ColumnName='TitleAndId' THEN Title
     END Desc, Id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...