在SQL中不包含表达式的情况下为多个? DECLARE@TestVal int 设置为@TestVal=5 挑选 案例 当@TestVal

在SQL中不包含表达式的情况下为多个? DECLARE@TestVal int 设置为@TestVal=5 挑选 案例 当@TestVal,sql,case,Sql,Case,采用以下形式时 DECLARE @TestVal int SET @TestVal = 5 SELECT CASE WHEN @TestVal <=3 THEN 'Top 3' WHEN (select ...) = 1 THEN 'Other Value' WHEN (select ...) = 2 THEN 'Other Value 2' ELSE 'Other'

采用以下形式时

    DECLARE @TestVal int
SET @TestVal = 5

SELECT
    CASE
        WHEN @TestVal <=3 THEN 'Top 3'
                WHEN (select ...) = 1 THEN 'Other Value'
                WHEN (select ...) = 2 THEN 'Other Value 2'
        ELSE 'Other'
    END
编辑
这假设您使用的Microsoft SQL Server其他DBMS可能不同

是的,这很好,但我会垂直排列“WHEN”并解释如下:

CASE WHEN Condition THEN Result
     WHEN Condition2 THEN Result2
ELSE Default
END
选择
案例
当@TestVal
选择
案例
当@TestVal
CASE WHEN Condition THEN Result
     WHEN Condition2 THEN Result2
ELSE Default
END
SELECT
    CASE
        WHEN @TestVal <=3  THEN 'Top 3'
        WHEN @TestVal <=10 THEN 'Top 10'
        WHEN @TestVAl <=25 THEN 'Top 25'
        ELSE 'Other'
    END
    SELECT
       CASE
          WHEN @TestVal <=3  THEN 'Top 3'
          WHEN @TestVal <=10 THEN 'Top 10'
          WHEN @TestVAl <=25 THEN 'Top 25'
          ELSE 'Other'
       END