Sentencia CASE con IS NULL y NOT NULL

12

¿Hay alguna forma mejor de escribir las líneas a continuación en SQL Server 2005?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,
Jon Seigel
fuente
3
Definir "mejor".
Wesley
No estoy familiarizado con MSSQL pero si tiene algo como la función IF en MySQL, puede escribir dicho código:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas
1
SQL Server 2012 tiene IIFpero la pregunta está etiquetada 2005.
Martin Smith
Debería poder lograr esto con la siguiente declaración. isnull(nullif(isnull(ID,'Y'),ID),'N')
Jason Cumberland
1
@ Bappy1988 ¿Por qué sería mejor que la respuesta de Jay?
dezso

Respuestas:

16

Has probado:

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

En este momento solo tengo acceso a 2008, pero espero que esta sintaxis siga funcionando en 2005 ( parece algo que sería parte de la definición original de CASE).


fuente
Sí, lo intenté, CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Valuepero estoy buscando otro enfoque mejor, como IF(ID IS NULL, 'YES', 'NO') AS ID_Valueen el MS Sql, para que todo pueda estar en una sola línea. Cualquier sugerencia por favor
77
Esta respuesta está en una sola línea. Si lo desea, puede poner toda la declaración en una sola línea.
ypercubeᵀᴹ