IF...ELSE (Transact-SQL)
適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス
Transact-SQL ステートメントを実行する条件を設定します。 条件が満たされた場合、キーワード (keyword)とその条件に続く IF
Transact-SQL ステートメントが実行されます。ブール式が返しますTRUE
。 省略可能なELSE
キーワード (keyword)では、条件が満たされていない場合IF
に実行される別の Transact-SQL ステートメントが導入されます。ブール式が返しますFALSE
。
構文
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
boolean_expression
を返すTRUE
式。FALSE
ブール式にステートメントが SELECT
含まれている場合は、ステートメントを SELECT
かっこで囲む必要があります。
{ sql_statement | statement_block }
ステートメント ブロックを使用して定義された Transact-SQL ステートメントまたはステートメント グループ。 ステートメント ブロックを使用しない限り、 IF
ELSE
1 つの Transact-SQL ステートメントのパフォーマンスに影響を与える可能性があります。
ステートメント ブロックを定義するには、フロー制御キーワード (keyword)と BEGIN
END
.
解説
コンストラクトは IF...ELSE
、バッチ、ストアド プロシージャ、およびアドホック クエリで使用できます。 このコンストラクトをストアド プロシージャで使用する場合は、通常、何らかのパラメーターの存在をテストします。
IF
テストは、別 IF
の後に入れ子にすることも、次の後に入れ子に ELSE
することもできます。 入れ子のレベルの制限は、使用可能なメモリによって異なります。
例
IF DATENAME(weekday, GETDATE()) IN (N'Saturday', N'Sunday')
SELECT 'Weekend';
ELSE
SELECT 'Weekday';
その他の例については、EL Standard Edition (IF...EL Standard Edition)。
例: Azure Synapse Analytics、Analytics Platform System (PDW)
次の例では、IF...ELSE
を使用し、DimProduct
テーブルの項目の重み付けを基にして、2 つの応答のどちらをユーザーに表示するかを決定します。
-- Uses AdventureWorksDW
DECLARE @maxWeight FLOAT, @productKey INT;
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;
ELSE
SELECT @productKey AS ProductKey,
EnglishDescription,
Weight,
'This product is available for shipping or pickup.' AS ShippingStatus
FROM DimProduct
WHERE ProductKey = @productKey;
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示