6

IIFステートメントは SQL Server のすべてのバージョンに存在しますか?

MSDNのチュートリアルを確認しました。

しかし、自分のマシンでこのコードを実行しようとしたとき

DECLARE @newDate datetime
SET @newDate =  CONVERT(varchar, {fn NOW()}, 111)
SELECT IIF(@newDate > '2010/12/2', 'Greater', 'smaller')

しかし、「'>' 付近の構文が正しくありません」というエラーが表示されます。

IIFSQL Server 2005 でステートメントが存在する例を教えてもらえますか?

4

3 に答える 3

11

このIIFステートメントは、MDX (SQL Server Analysis Servicesのクエリ言語) にのみ存在し、SQL Server のデータ ウェアハウス側に存在します。

プレーンな T-SQLにはステートメントがありません。IIF

T-SQL でできる最善のことは、CASE.... WHEN... THEN...ステートメントを使用することです。

于 2010-12-07T09:00:44.433 に答える
6

CASE式を使用する方が良いでしょう:

DECLARE @newDate datetime
SET @newDate =  CONVERT(varchar, {fn NOW()}, 111)
SELECT CASE WHEN @newDate > '20101202' THEN 'Greater' ELSE 'smaller' END

また、日付リテラルを安全な形式に変更したことにも注意してください。'2010/12/2' は、SQL サーバーによって 2 月 12 日または 12 月 2 日として解釈される可能性があります。

于 2010-12-07T09:02:27.300 に答える