คำสั่ง CASE ที่มีค่า NULL และไม่ใช่ NULL


12

มีวิธีใดที่ดีกว่าในการเขียนบรรทัดด้านล่างใน SQL Server 2005

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

3
กำหนด "ดีกว่า"
เวสลีย์

ฉันไม่คุ้นเคยกับ MSSQL แต่ถ้ามันมี IF-function ใน MySQL คุณสามารถเขียนโค้ดดังกล่าวได้:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas

1
SQL Server 2012 มีIIFแต่คำถามถูกติดแท็ก 2005
Martin Smith

คุณควรจะทำสิ่งนี้ให้สำเร็จด้วยคำแถลงด้านล่าง isnull(nullif(isnull(ID,'Y'),ID),'N')
Jason Cumberland

1
@ Bappy1988 ทำไมมันจะดีกว่าคำตอบของเจย์?
dezso

คำตอบ:


16

คุณลอง:

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

ฉันเพิ่งจะสามารถเข้าถึง 2008 ได้ในขณะนี้ แต่ฉันหวังว่าไวยากรณ์นี้จะยังคงใช้งานได้ในปี 2005 ( ดูเหมือนจะเป็นสิ่งที่จะเป็นส่วนหนึ่งของคำนิยามดั้งเดิมของCASE)


ใช่ - ฉันลองแล้วCASE WHEN (ID IS NULL) THEN 'YES' ELSE 'NO' END AS ID_Valueแต่ฉันกำลังมองหาวิธีอื่นที่ดีกว่าอย่างเช่นIF(ID IS NULL, 'YES', 'NO') AS ID_Valueใน Ms Sql เพื่อให้ทุกอย่างอยู่ในบรรทัดเดียว ข้อเสนอแนะใด ๆ โปรด

7
คำตอบนี้อยู่ในบรรทัดเดียว หากคุณต้องการคุณสามารถใส่คำสั่งทั้งหมดในบรรทัดเดียว
ypercubeᵀᴹ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.