2012-07-18 9 views
32

IIF()をselectステートメントに使用しようとしています。ブール式は、フィールドの値が空の文字列と等しいかどうかをチェックします。構文はそうのようなものです:SQL Server 2008 IIFステートメントが有効に見えない

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

私は簡単なテストを試みた

"=近くの構文エラー" エラーを取得しています:

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

を、私は"syntax errror near >"

を取得していますこれにより、私はIIFがまったく動かないと信じています。

SQL Server 2008 R2を使用していますが、IIF()が動作するように構成する必要がありますか?私が紛失している構文について何かありますか?私のテストは簡単であり、構文エラーが出ます。

ご協力いただければ幸いです。どうもありがとう!

+3

2012年の新機能 –

答えて

61

前述のように、IIFはSQL2012の機能です。

SELECT CASE field WHEN '' THEN 'ONe action' ELSE 'Another' END 
25

IFF(SQL 2012とにかくどうなるのかです)CASEであなたのIIFを交換しては、だからではなく、 'ケース' を使用してSQL Serverの2012年からスタート可能です。 SQL Server 2008でよりコンパクトなフォーム(代わりに例機能)を探しているなら

あなたが使用することができます。

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

の代わりに:

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

次に、あなたの文は、意志be:

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

1
DECLARE @a int=45 

DECLARE @b int=40 

SELECT 
     CASE 
     WHEN @A>@B THEN 'True' 

ELSE 'FALSE'   
     END 

IIFの代わりにこのソリューションを使用できます。

関連する問題