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,

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).


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ᵀᴹ
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.