2010-08-19 7 views
1

Мне нужно выполнить инструкцию вроде (мне нужно и ключевое слово вместе с когда).ЗАЯВЛЕНИЕ О ЗАЯВКЕ SQL СЕРВЕРОВ

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.

6

Try:

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

Хорошо grokking, я думаю. +1 – Tobiasopdenbrouw

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 
Смежные вопросы