Pernyataan KASUS dengan IS NULL dan NOT NULL

12

Apakah ada cara yang lebih baik untuk menulis baris di bawah ini di SQL Server 2005?

CASE
WHEN (ID IS NULL)
   THEN 'YES'
WHEN (ID IS NOT NULL)
   THEN 'NO'
END AS ID_Value,
Jon Seigel
sumber
3
Tentukan "lebih baik".
Wesley
Saya tidak terbiasa dengan MSSQL tetapi jika memiliki sesuatu seperti IF-function di MySQL, Anda dapat menulis kode seperti ini:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas
1
SQL Server 2012 memiliki IIFtetapi pertanyaannya ditandai 2005.
Martin Smith
Anda harus dapat mencapai ini dengan pernyataan di bawah ini. isnull(nullif(isnull(ID,'Y'),ID),'N')
Jason Cumberland
1
@ Bappy1988 Mengapa lebih baik dari jawaban Jay?
dezso

Jawaban:

16

Apakah Anda sudah mencoba:

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

Saya hanya memiliki akses ke 2008 sekarang, tetapi saya berharap bahwa sintaks ini akan tetap berfungsi pada tahun 2005 ( sepertinya sesuatu yang akan menjadi bagian dari definisi asli CASE).


sumber
Ya - saya sudah mencoba CASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_ValueTapi saya mencari beberapa pendekatan lain yang lebih baik seperti IF(ID IS NULL, 'YES', 'NO') AS ID_Valuedi Ms Sql, sehingga semuanya bisa dalam satu baris. Mohon saran
7
Jawaban ini ada dalam satu baris. Jika mau, Anda dapat menempatkan seluruh pernyataan dalam satu baris.
ypercubeᵀᴹ