このブラウザーはサポートされなくなりました。

Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

Microsoft Edge をダウンロードする Internet Explorer と Microsoft Edge の詳細情報

適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL エンドポイント 、Microsoft Fabric の Warehouse

Transact-SQL ステートメントを実行する条件を設定します。 IF キーワードおよびその条件に続く Transact-SQL ステートメントは、条件が満たされる (ブール式から TRUE が返される) 場合に実行されます。 省略可能な ELSE キーワードでは、IF 条件が満たされない (ブール式から FALSE が返される) 場合に実行される別の Transact-SQL ステートメントを指定します。

Transact-SQL 構文表記規則

IF Boolean_expression   
     { sql_statement | statement_block }   
[ ELSE   
     { sql_statement | statement_block } ]   

SQL Server 2014 以前の Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

Boolean_expression
TRUE または FALSE を返す式です。 ブール式が SELECT ステートメントを含む場合は、SELECT ステートメントをかっこで囲む必要があります。

{ sql_statement| statement_block }
1 つの Transact-SQL ステートメント、またはステートメント ブロックで定義したステートメントのグループです。 ステートメント ブロックを使用しない限り、IF または ELSE 条件は 1 つの Transact-SQL ステートメントのパフォーマンスにしか影響しません。

ステートメント ブロックを定義するには、流れ制御キーワードの BEGIN と END を使用してください。

IF...ELSE 構造は、バッチ、ストアド プロシージャ、およびアドホック クエリ内で使うことができます。 この構造がストアド プロシージャで使用される場合、あるパラメーターの存在を調べるためによく使用されます。

IF テストは、他の IF の後、または ELSE の後で入れ子にすることができます。 入れ子のレベルの制限は、使用可能なメモリによって異なります。

IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
       SELECT 'Weekend';
       SELECT 'Weekday';

例については、「ELSE (IF...ELSE) (Transact-SQL)」を参照してください。

例: Azure Synapse Analytics、Analytics Platform System (PDW)

次の例では、IF...ELSE を使用し、DimProduct テーブルの項目の重み付けを基にして、2 つの応答のどちらをユーザーに表示するかを決定します。

-- Uses AdventureWorksDW  
DECLARE @maxWeight FLOAT, @productKey INTEGER  
SET @maxWeight = 100.00  
SET @productKey = 424  
IF @maxWeight <= (SELECT Weight from DimProduct WHERE ProductKey = @productKey)   
    SELECT @productKey AS ProductKey, EnglishDescription, Weight, 'This product is too heavy to ship and is only available for pickup.' 
        AS ShippingStatus
    FROM DimProduct WHERE ProductKey = @productKey
    SELECT @productKey AS ProductKey, EnglishDescription, Weight, 'This product is available for shipping or pickup.' 
        AS ShippingStatus
    FROM DimProduct WHERE ProductKey = @productKey

BEGIN...END (Transact-SQL)
END (BEGIN...END) (Transact-SQL)
SELECT (Transact-SQL)
WHILE (Transact-SQL)
CASE (Transact-SQL)
フロー制御言語 (Transact-SQL)ELSE (IF...ELSE) (Transact-SQL)