Bagikan melalui


JIKA... ELSE (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse 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

Sintaksis

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

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

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.

Keterangan

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 ELSElain IF atau mengikuti . Batas jumlah tingkat berlapis tergantung pada memori yang tersedia.

Contoh

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;