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,

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


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ᵀᴹ
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.