Bagikan melalui


KALAU... ELSE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistem Platform Analitik (PDW)Titik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Memberlakukan kondisi pada eksekusi pernyataan Transact-SQL. Pernyataan Transact-SQL yang mengikuti IF kata kunci dan kondisinya dijalankan jika kondisi terpenuhi: ekspresi Boolean mengembalikan TRUE. Kata kunci opsional ELSE memperkenalkan pernyataan Transact-SQL lain yang dijalankan ketika IF kondisi tidak terpenuhi: ekspresi Boolean mengembalikan FALSE.

Konvensi sintaks transact-SQL

Syntax

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

Arguments

boolean_expression

Ekspresi yang mengembalikan TRUE atau FALSE. Jika ekspresi Boolean berisi SELECT pernyataan, SELECT pernyataan harus diapit dalam tanda kurung.

{ sql_statement | statement_block }

Setiap pernyataan Transact-SQL atau pengelompokan pernyataan seperti yang didefinisikan dengan menggunakan blok pernyataan. Kecuali blok pernyataan digunakan, IF kondisi atau ELSE dapat memengaruhi performa hanya satu pernyataan Transact-SQL.

Untuk menentukan blok pernyataan, gunakan kata kunci BEGIN control-of-flow dan END.

Remarks

Konstruksi IF...ELSE dapat digunakan dalam batch, dalam prosedur tersimpan, dan dalam kueri ad hoc. Ketika konstruksi ini digunakan dalam prosedur tersimpan, biasanya untuk menguji keberadaan beberapa parameter.

IFtes dapat disarangkan setelah yang IFlain ELSE atau mengikuti . Batas jumlah tingkat berlapis tergantung pada memori yang tersedia.

Examples

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

Untuk contoh lainnya, lihat ELSE (IF... LAIN).

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

Contoh berikut menggunakan IF...ELSE untuk menentukan mana dari dua respons yang akan ditampilkan pengguna, berdasarkan berat item dalam DimProduct tabel.

-- 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;