2010-08-19 128 views
1

我必须执行一个语句(我需要和关键字一起)。SQL SERVER CASE语句澄清

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

我得到语法错误,如何重写它而不影响条件。

回答

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

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

6

尝试:

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

好所著的Grokking仔细一看,我想。 +1 – Tobiasopdenbrouw 2010-08-19 09:30:16

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