SQL Server 2008 по условию - PullRequest
       1

SQL Server 2008 по условию

1 голос
/ 03 ноября 2010

У меня есть запрос:

DECLARE @MyTemp TABLE
(
  MyField VARCHAR(20)
)

INSERT INTO @MyTemp VALUES ( 'BBA' )
INSERT INTO @MyTemp VALUES ( 'ABA' )
INSERT INTO @MyTemp VALUES ( 'AAA' )
INSERT INTO @MyTemp VALUES ( 'BAA' )


SELECT * FROM @MyTemp
ORDER BY MyField

То, что я хочу, это заказать в алфавитном порядке, КРОМЕ всего, что начинается с BA, которое я хочу последним.

Я пробовал это:

SELECT * FROM @MyTemp
ORDER BY MyField, CASE MyField LIKE 'BA%' WHEN 1 THEN 1 ELSE 0 END

Что не работает. Я пробовал IIF, СОДЕРЖИТ все безуспешно.

Как я могу это сделать?

1 Ответ

7 голосов
/ 03 ноября 2010

Измените ORDER BY на

ORDER BY CASE WHEN MyField LIKE 'BA%' THEN 1 ELSE 0 END, MyField
...