CASE-Anweisung mit IS NULL und NOT NULL

12

Gibt es eine bessere Möglichkeit, die folgenden Zeilen in SQL Server 2005 zu schreiben?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,
Jon Seigel
quelle
3
Definieren Sie "besser".
Wesley
Ich bin nicht mit MSSQL vertraut, aber wenn es so etwas wie eine IF-Funktion in MySQL hat, können Sie folgenden Code schreiben:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas
1
SQL Server 2012 hat IIFaber die Frage ist mit dem Tag 2005 markiert.
Martin Smith
Sie sollten dies mit der folgenden Aussage erreichen können. isnull(nullif(isnull(ID,'Y'),ID),'N')
Jason Cumberland
1
@ Bappy1988 Warum sollte es besser sein als Jays Antwort?
Dekso

Antworten:

16

Hast du versucht:

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

Ich habe momentan nur Zugriff auf 2008, aber ich hoffe, dass diese Syntax auch 2005 noch funktioniert ( scheint etwas zu sein, das Teil der ursprünglichen Definition von wäre CASE).


quelle
Ja - ich habe es versucht, CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Valueaber ich suche nach einem anderen besseren Ansatz wie IF(ID IS NULL, 'YES', 'NO') AS ID_Valuedem Ms Sql, damit alles in einer einzigen Zeile stehen kann. Irgendwelche Vorschläge bitte
7
Diese Antwort steht in einer einzigen Zeile. Wenn Sie möchten, können Sie die gesamte Anweisung in eine einzelne Zeile setzen.
Ypercubeᵀᴹ