SQL CASE Вопрос - PullRequest
       5

SQL CASE Вопрос

0 голосов
/ 28 марта 2010

Я не знаю, можно ли это сделать, но я подумал, что спросить.

То, что я хочу сделать, - это запрос оператора case, и если 1 начинает другое действие. если 0 ничего не делает.

Например

select CASE WHEN client.deathofdeath = yes THEN 1 

        do another select in here (which is another table)

Else 0 End AS DeathDate

From Client client

Можно ли это сделать?

Ответы [ 3 ]

3 голосов
/ 28 марта 2010

Не внутри оператора CASE.

Если вы хотите выполнять такие операции управления потоком, используйте вместо этого IF. Переменная @dateofDeath может быть либо объявленной и назначенной переменной T-sql, либо самой инструкцией SELECT.

IF @dateofDeath = 'yes' BEGIN
   do something
END ELSE BEGIN
   do something else
END
0 голосов
/ 30 марта 2010

Как сказал unclepaul84, вы можете сделать что-то вроде этого:

select
    CASE
        WHEN client.deathofdeath = yes THEN (select top 1 therow from othertable where clientid=clientid.clientid)
        Else 0
    End AS DeathDate
From
    Client client
0 голосов
/ 28 марта 2010

Вы имеете в виду это: сделать что-то, если что-то верно / существует в другой таблице?

IF EXISTS (SELECT * FROM Client WHERE deathofdeath = yes)
   SELECT stuff FROM OtherTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...