IS NULLおよびNOT NULLのCASEステートメント


12

SQL Server 2005で以下の行を記述するより良い方法はありますか?

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

3
「より良い」を定義します。
ウェズリー

私は、MSSQLに慣れていないんだけど、それはMySQLでのIF関数のようなものを持っている場合、あなたはこのようなコードを書くことができます:IF(ID IS NULL, 'YES', 'NO') AS ID_Value
Kondybas

1
SQL Server 2012にはありますIIFが、質問には2005
マーティン・スミス

以下のステートメントでこれを達成できるはずです。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、すべてが1行に収まるように、Ms Sqlのような他のより良いアプローチを探しています。何か提案をお願いします

7
この答えは一行です。必要に応じて、ステートメント全体を1行で入力できます。
ypercubeᵀᴹ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.