T-SQL SYNTAX ISSUE - using OR in CASE statement

本小妞迷上赌 提交于 2019-12-10 12:59:12

问题


i would like to build a CASE statement that incorporates the following logic, but the sql compiler does not like the 'OR' in my statement:

CASE expression
WHEN expression1 OR expression2
THEN <yadda yadda>
ELSE <yadda yadda>
END

more specific code below:

CASE @var1
WHEN '99' OR '22'   
            THEN        
                (CASE @var2
                WHEN 'All' THEN col1
                ELSE @var2
                END)
END

回答1:


DECLARE @Variable INT;
SET @Variable = 1;

SELECT
    CASE
        WHEN @Variable = 1 OR @Variable = 2 THEN 'It is 1 or 2'
        WHEN @Variable = 3 THEN 'It is 3'
        ELSE 'It is not 1, 2, or 3'
    END AS [SomeField]

MSDN docs for CASE, OR, and Expressions.




回答2:


Based on your edits, you don't even need an OR statement:

CASE 
    WHEN @var1 IN ('99', '22')                
    THEN                         
         (CASE @var2                 
          WHEN 'All' 
          THEN col1                 
          ELSE @var2                 
          END) 
    END 


来源:https://stackoverflow.com/questions/12697127/t-sql-syntax-issue-using-or-in-case-statement

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!