web-dev-qa-db-ja.com

SQL Server IIFとケース

最近、SQL Server 2012のIIF関数の可用性について知るようになりました。クエリでは常にネストされたCASEを使用しています。 IIFステートメントの正確な目的と、クエリでIIFステートメントよりもCASEステートメントの使用を好む場合を知りたい。ほとんどの場合、クエリではネストされたCASEを使用します。

すべての入力をありがとう。

70
neophyte

IIFCASE WHEN <Condition> THEN <true part> ELSE <false part> ENDと同じです。クエリプランは同じになります。おそらく、最初に実装された「構文糖」です。

CASEはすべてのSQLプラットフォーム間で移植可能ですが、IIFはSQL SERVER 2012+固有です。

121
Karl Kieninger

IIFは、非標準のT-SQL関数です。 SQL Server 2012に追加されたため、Accessは事前にIIFをCASEにリファクタリングすることなくSQL Serverに移行できました。 Access dbがSQL Serverに完全に移行されたら、リファクタリングできます。

15
user2505560