SQL Server 2008 R2中的SQL Switch/Case

3

这是我的测试T-SQL。

DECLARE @TestVal INT

SET @TestVal = 1

SELECT 
   CASE @TestVal
      WHEN (1 | 2 | 6) THEN 'First' // I would like to check 1 or 2 or 6.
      WHEN 3 THEN 'Second'
      WHEN 4 THEN 'Third'
      ELSE 'Other'
   END

当前结果为“其他”。

我想将结果作为“第一项”获取。我如何在我的T-SQL中使用(OR语句)。

最好的问候


可能是重复的问题:SQL Server: CASE WHEN OR THEN ELSE END => 不支持 OR - Cᴏʀʏ
3个回答

6
使用case的条件形式:
SELECT (CASE WHEN @TestVal IN (1, 2, 6) THEN 'First' 
             WHEN @TestVal = 3 THEN 'Second'
             WHEN @TestVal = 4 THEN 'Third'
             ELSE 'Other'
        END)

2
请尝试以下方法:
SELECT
    CASE WHEN @TestVal IN (1, 2, 6) THEN 'First'
         WHEN @TestVal = 3 THEN 'Second'
         WHEN @TestVal = 4 THEN 'Third'
         ELSE 'Other'
    END

2
上面的答案是正确的,你也可以这样使用 OR:

DECLARE @TestVal INT

SET @TestVal = 2

SELECT (CASE WHEN (@TestVal = 1 OR @TestVal=2 OR @TestVal=6) THEN 'First' 
             WHEN @TestVal = 3 THEN 'Second'
             WHEN @TestVal = 4 THEN 'Third'
             ELSE 'Other'
        END)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接