SQL Switch/Case 在 SQL Server 2008 R2 中

SQL Switch/Case in SQL Server 2008 R2

这是我的测试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

当前结果为'Other'。

我想得到 'First' 的结果。如何在我的 T-SQL.

中使用 (OR 语句)

此致

使用case的条件形式:

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

试试这个:

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

以上答案是正确的,您也可以这样使用 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)