【问题标题】:SQL Server 2008 order by conditionalSQL Server 2008 按条件排序
【发布时间】:2010-11-03 04:57:42
【问题描述】:

我有一个问题:

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,CONTAINS 都没有成功。

我该怎么做?

【问题讨论】:

    标签: sql-server sql-order-by


    【解决方案1】:

    ORDER BY 更改为

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

    【讨论】:

    • 在你 Quassnoi之间,我要如何保持我的平均水平?!
    • 早上。您需要先发制人,并将答案保存在某个地方... X-)
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 2010-12-15
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多