РАЗЪЯСНЕНИЕ ЗАЯВЛЕНИЯ О СЛУЧАЕ SQL - PullRequest
1 голос
/ 19 августа 2010

Мне нужно выполнить инструкцию вроде (мне нужно и ключевое слово вместе с когда).

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

Я получаю синтаксическую ошибку, как переписать ее, не затрагивая условие.

Ответы [ 3 ]

6 голосов
/ 19 августа 2010

Попробуйте:

select case when A.Column='XXXX' and Isnull(A.AnotherColumn,'')<>'' then 'Yes'
       else 'No' end as 'Is Allowed' 
from TableName
0 голосов
/ 19 августа 2010

. Более подробно рассмотрим 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
0 голосов
/ 19 августа 2010
SELECT
    CASE A.Column
        WHEN 'Is Allowed THEN 'First'
        WHEN 2 THEN 'Second'
        WHEN 3 THEN 'Third'
        ELSE 'Other'
    END

Это общий способ изготовления СЛУЧАЯ (который является вашим вопросом). Тем не менее, ваш запрос / логика выглядит немного запутанным. Более подробный ответ / запрос возможен, но, возможно, будет использоваться больше операторов / вложенных CASE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...