SQL Server 2008按条件排序

时间:2010-11-03 04:57:42

标签: 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

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

我试过这个:

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

哪个不起作用。我已经尝试过IIF,但没有成功。

我该怎么做?

1 个答案:

答案 0 :(得分:7)

ORDER BY更改为

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