これをMicrosoftSQLServer2008R2で使用しようとしています。
SET @SomeVar = @SomeOtherVar +
IIF(@SomeBool, 'value when true', 'value when false')
しかし、エラーが発生します:
IIF(...)
認識されている組み込み関数名ではありません
IIF()
それ以降のバージョンとのみ互換性がありますか?
使用できる代替機能はありますか?
これをMicrosoftSQLServer2008R2で使用しようとしています。
SET @SomeVar = @SomeOtherVar +
IIF(@SomeBool, 'value when true', 'value when false')
しかし、エラーが発生します:
IIF(...)
認識されている組み込み関数名ではありません
IIF()
それ以降のバージョンとのみ互換性がありますか?
使用できる代替機能はありますか?
IIF
SQL 2012に由来します。それ以前は、次を使用できますCASE
。
SET @SomeVar = @SomeOtherVar + CASE
WHEN @SomeBool
THEN 'value when true'
ELSE 'value when false'
END
SQL Server 2012の新機能、プログラマビリティの強化:
SQL Server 2012には、14個の新しい組み込み関数が導入されています。これらの関数は、多くのデスクトップアプリケーションの式言語に見られる機能をエミュレートすることにより、インフォメーションワーカーの移行パスを容易にします。ただし、これらの関数は、SQLServerの経験豊富なユーザーにも役立ちます。
..。
IIF
SQL Server2008R2およびそれ以前のバージョンでは無効です。
IIF
SQL Server 2012で導入されました(リンクしたドキュメントページに以前のバージョンへのリンクはありません)。
選択範囲外の場合は、標準のIFステートメントを使用することもできます。
例えば
DECLARE @Answer VARCHAR(3) = 'YES'
IF @Answer = 'Yes'
BEGIN
--Do Something if true
END
ELSE
-- Do Soemthing if false