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.