【问题标题】:Multiple values in SQL CASE's THEN StatementSQL CASE 的 THEN 语句中的多个值
【发布时间】:2011-08-04 17:11:37
【问题描述】:

我想知道是否可以在T-SQL 的 case 语句的 then 部分中指定多个值?

我附上了一段代码,我用它来加入查询中的一些表。我在 sn-p 中包含了一条评论。

LEFT JOIN Business B ON v.BusID = B.BusID
LEFT JOIN BusinessTypeKey T ON B.BusinessTypeID = T.BusTypeID
LEFT JOIN Location L ON L.BusID = B.BusID
AND L.HeadQuarters = CASE 
WHEN (SELECT COUNT(1) from Location L2
WHERE L2.BusID = B.BusID) = 1                                                                           
THEN 1,0   -- Would like to specify either 1 or 0 here. I suppose I could also make it euqal to -> L.HeadQuarters but would like a better way to impose it                                                                                                  
ELSE 1  
END

【问题讨论】:

    标签: sql sql-server tsql case


    【解决方案1】:

    这有点难看,但假设 HeadQuarters 不是十进制/数字类型并且只有整数值,

    AND L.HeadQuarters BETWEEN CASE WHEN (SELECT COUNT...) = 1 THEN 0 ELSE 1 END AND 1;
    

    【讨论】:

      【解决方案2】:

      你是说……?

      LEFT JOIN whatever
      ON...
      CASE...WHEN...THEN...END = 1
      OR
      CASE...WHEN...THEN...END = 0
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多