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,

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


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ᵀᴹ
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.