28

これをMicrosoftSQLServer2008R2で使用しようとしています。

SET @SomeVar = @SomeOtherVar +
  IIF(@SomeBool, 'value when true', 'value when false')

しかし、エラーが発生します:

IIF(...)認識されている組み込み関数名ではありません

IIF()それ以降のバージョンとのみ互換性がありますか?

使用できる代替機能はありますか?

4

4 に答える 4

43

IIFSQL 2012に由来します。それ以前は、次を使用できますCASE

SET @SomeVar = @SomeOtherVar + CASE
 WHEN @SomeBool
 THEN 'value when true'
 ELSE 'value when false'
END
于 2012-08-20T09:27:42.547 に答える
9

SQL Server 2012の新機能、プログラマビリティの強化

SQL Server 2012には、14個の新しい組み込み関数が導入されています。これらの関数は、多くのデスクトップアプリケーションの式言語に見られる機能をエミュレートすることにより、インフォメーションワーカーの移行パスを容易にします。ただし、これらの関数は、SQLServerの経験豊富なユーザーにも役立ちます。

..。

于 2012-08-20T09:26:54.990 に答える
4

IIFSQL Server2008R2およびそれ以前のバージョンでは無効です

IIFSQL Server 2012で導入されました(リンクしたドキュメントページに以前のバージョンへのリンクはありません)。

于 2012-08-20T09:25:12.430 に答える
4

選択範囲外の場合は、標準のIFステートメントを使用することもできます。

例えば

DECLARE @Answer VARCHAR(3) = 'YES'

IF @Answer = 'Yes'
BEGIN 
--Do Something if true
END
ELSE
-- Do Soemthing if false
于 2013-12-23T05:09:15.057 に答える