SQL SERVER案例陈述澄清

时间:2010-08-19 09:23:19

标签: asp.net sql sql-server-2005

我必须执行一个声明(我需要和关键字以及何时)。

  select 
          'Is Allowed'= case A.Column
                  when 
                     A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
                  else
                    'No' end from TableName

我收到语法错误,如何在不影响条件的情况下重写它。

3 个答案:

答案 0 :(得分:6)

尝试:

select case when A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
       else 'No' end as 'Is Allowed' 
from TableName

答案 1 :(得分:0)

SELECT
    CASE A.Column
        WHEN 'Is Allowed THEN 'First'
        WHEN 2 THEN 'Second'
        WHEN 3 THEN 'Third'
        ELSE 'Other'
    END

制作CASE的一般方法(这是你的问题)。但是,您的查询/逻辑看起来有点复杂。可以使用更详细的答案/查询,但可能会使用更多语句/嵌套CASE。

答案 2 :(得分:0)

仔细查看CASE (Transact-SQL)

SELECT  CASE
            WHEN some boolean expression
                THEN value
            ELSE default value
        END

SELECT  CASE value to check
            WHEN vlue to check agains
                THEN value
            ELSE default value
        END