Instrukcja CASE z IS IS NULL i NOT NULL

12

Czy jest lepszy sposób na napisanie poniższych wierszy w SQL Server 2005?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,
Jon Seigel
źródło
3
Zdefiniuj „lepiej”.
Wesley,
Nie jestem zaznajomiony z MSSQL, ale jeśli ma coś takiego jak funkcja IF w MySQL, możesz napisać taki kod:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas
1
SQL Server 2012 ma, IIFale pytanie jest oznaczone jako 2005.
Martin Smith
Powinieneś być w stanie to zrobić za pomocą poniższego stwierdzenia. isnull(nullif(isnull(ID,'Y'),ID),'N')
Jason Cumberland,
1
@ Bappy1988 Dlaczego miałoby to być lepsze niż odpowiedź Jaya?
dezso

Odpowiedzi:

16

Próbowałeś:

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

Mam teraz dostęp tylko do 2008 roku, ale mam nadzieję, że ta składnia nadal będzie działać w 2005 roku ( wydaje się, że byłaby częścią oryginalnej definicji CASE).


źródło
Tak - próbowałem CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_ValueAle szukam innego lepszego podejścia, takiego jak IF(ID IS NULL, 'YES', 'NO') AS ID_Valuew Ms Sql, aby wszystko mogło być w jednym wierszu. Wszelkie sugestie proszę
7
Ta odpowiedź jest w jednym wierszu. Jeśli chcesz, możesz umieścić całą instrukcję w jednym wierszu.
ypercubeᵀᴹ