Instrução CASE com IS NULL e NOT NULL

12

Existe alguma maneira melhor de escrever as linhas abaixo no SQL Server 2005?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,
Jon Seigel
fonte
3
Defina "melhor".
11272 Wesley
Eu não estou familiarizado com MSSQL, mas se ele tem algo como IF-função no MySQL, você pode escrever tal código:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas
11
SQL Server 2012 tem IIF, mas a questão é marcado 2005.
Martin Smith
Você deve conseguir isso com a declaração abaixo. isnull(nullif(isnull(ID,'Y'),ID),'N')
21812 Jason Cumberland
11
@ Bappy1988 Por que seria melhor que a resposta de Jay?
Dez18

Respostas:

16

Você tentou:

CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Value,

Agora só tenho acesso a 2008, mas espero que essa sintaxe ainda funcione em 2005 ( parece algo que faria parte da definição original de CASE).


fonte
Sim - tentei. CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_ValueMas estou procurando outra abordagem melhor, como IF(ID IS NULL, 'YES', 'NO') AS ID_Valueno Ms Sql, para que tudo possa estar em uma única linha. Qualquer sugestão, por favor
7
Esta resposta está em uma única linha. Se você quiser, pode colocar a declaração inteira em uma única linha.
ypercubeᵀᴹ