KALAU... ELSE (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse 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
.
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.
IF
tes dapat disarangkan setelah yang ELSE
lain 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;