Instruction CASE avec IS NULL et NOT NULL


12

Existe-t-il un meilleur moyen d'écrire les lignes ci-dessous dans SQL Server 2005?

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

3
Définissez «mieux».
Wesley

Je ne connais pas MSSQL mais s'il a quelque chose comme la fonction IF dans MySQL, vous pouvez écrire un tel code:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas

1
SQL Server 2012 a IIFmais la question est balisée 2005.
Martin Smith

Vous devriez pouvoir accomplir cela avec la déclaration ci-dessous. isnull(nullif(isnull(ID,'Y'),ID),'N')
Jason Cumberland

1
@ Bappy1988 Pourquoi serait-ce mieux que la réponse de Jay?
dezso

Réponses:


16

As-tu essayé:

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

Je n'ai accès qu'à 2008 pour le moment, mais j'espère que cette syntaxe fonctionnera toujours en 2005 (cela semble faire partie de la définition originale de CASE).


Oui - j'ai essayé CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_ValueMais je cherche une autre meilleure approche quelque chose comme IF(ID IS NULL, 'YES', 'NO') AS ID_Valuedans le Ms Sql, afin que tout puisse être sur une seule ligne. Toutes suggestions s'il vous plaît

7
Cette réponse est sur une seule ligne. Si vous le souhaitez, vous pouvez mettre l'intégralité de l'instruction sur une seule ligne.
ypercubeᵀᴹ
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.