SQL Server 2008按条件排序

Rus*_*ell 1 sql-server sql-order-by

我有一个问题:

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
Run Code Online (Sandbox Code Playgroud)

我想要的是按字母顺序排序,除了以BA开头的任何内容,我想要最后一次.

我试过这个:

SELECT * FROM @MyTemp
ORDER BY MyField, CASE MyField LIKE 'BA%' WHEN 1 THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)

哪个不起作用.我试过IIF,包含所有没有成功.

我怎样才能做到这一点?

Adr*_*der 7

更改ORDER BY

ORDER BY CASE WHEN MyField LIKE 'BA%' THEN 1 ELSE 0 END, MyField
Run Code Online (Sandbox Code Playgroud)