38

IIF()selectステートメントで使用しようとしています。ブール式は、フィールドの値が空の文字列と等しいかどうかを確認します。構文は次のようになります。

SELECT IIF(field = '','ONe action','Another')

「構文エラー」というエラーが発生します。

簡単なテストを試しました。

SELECT IIF(2 > 1, 'yes','no')

そして私は得ています"syntax errror near >"

これは、それがまったく機能していないと私に信じさせていIIFます。

SQL SERVER 2008 R2を使用していますが、IIF()を機能させるために構成する必要があるものはありますか?私が見逃している構文について何かありますか?私のテストは可能な限り単純ですが、それでも構文エラーが発生します。

どんな助けでもいただければ幸いです。どうもありがとう!

4

4 に答える 4

75

前述のとおりIIF、SQL2012 の機能です。

IIFあなたを a に置き換えますCASE(とにかくSQL 2012が行うことです)

 SELECT CASE field WHEN '' THEN 'ONe action' ELSE 'Another' END
于 2012-07-18T12:15:27.247 に答える
30

IFFは SQL Server 2012 以降で使用できます。そのため、代わりに「Case」を使用してください。

SQL Server 2008 でよりコンパクトな形式 (大文字と小文字ではなく関数) を探している場合は、次を使用できます。

isnull((select 'yes' where 2 > 1),'no')

それ以外の:

SELECT IIF(2 > 1, 'yes','no')

次に、ステートメントは次のようになります。

SELECT isnull((select 'yes' where 2 > 1),'no')

于 2012-11-18T09:58:43.073 に答える
12

IIFSQL Server 2012で導入されたため、SQLServer2008またはSQLServer2008R2では機能しません。

于 2012-07-18T11:55:04.677 に答える