Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistem Platform Analitik (PDW)
Titik akhir analitik SQL di Microsoft Fabric
Gudang di Microsoft Fabric
Database SQL di Microsoft Fabric
Memberlakukan kondisi pada eksekusi pernyataan Transact-SQL. Pernyataan Transact-SQL (sql_statement) setelah boolean_expression dijalankan jika boolean_expression mengevaluasi ke TRUE. Kata kunci opsional ELSE adalah pernyataan Transact-SQL alternatif yang dijalankan ketika boolean_expression mengevaluasi ke FALSE atau NULL.
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
Ekspresi yang mengembalikan TRUE atau FALSE.
Jika boolean_expression berisi SELECT pernyataan, SELECT pernyataan harus diapit dalam tanda kurung.
{ sql_statement | statement_block }
Setiap pernyataan Transact-SQL atau pengelompokan pernyataan yang valid seperti yang didefinisikan dengan blok pernyataan. Untuk menentukan blok pernyataan (batch), gunakan kata kunci BEGIN bahasa kontrol aliran dan END. Meskipun semua pernyataan Transact-SQL valid dalam blok BEGIN...END , pernyataan Transact-SQL tertentu tidak boleh dikelompokkan bersama dalam batch yang sama (blok pernyataan).
Tipe pengembalian
Boolean
Examples
Sampel kode dalam artikel ini menggunakan database sampel AdventureWorks2025 atau AdventureWorksDW2025, yang dapat Anda unduh dari halaman beranda Sampel dan Proyek Komunitas Microsoft SQL Server.
A. Menggunakan ekspresi Boolean
Contoh berikut memiliki ekspresi Boolean (1 = 1) yang benar dan, oleh karena itu, mencetak pernyataan pertama.
IF 1 = 1 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
Contoh berikut memiliki ekspresi Boolean (1 = 2) yang salah, dan oleh karena itu mencetak pernyataan kedua.
IF 1 = 2 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
GO
B. Menggunakan kueri sebagai bagian dari ekspresi Boolean
Contoh berikut menjalankan kueri sebagai bagian dari ekspresi Boolean. Karena ada 10 sepeda dalam Product tabel yang memenuhi kondisi dalam WHERE klausul, pernyataan cetak pertama dijalankan. Anda dapat mengubah > 5 ke > 15, untuk melihat bagaimana bagian kedua dari pernyataan dapat dijalankan.
USE AdventureWorks2022;
GO
IF (SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
) > 5
PRINT 'There are more than 5 Touring-3000 bicycles.'
ELSE
PRINT 'There are 5 or less Touring-3000 bicycles.';
GO
C. Menggunakan blok pernyataan
Contoh berikut menjalankan kueri sebagai bagian dari ekspresi Boolean lalu menjalankan blok pernyataan yang sedikit berbeda berdasarkan hasil ekspresi Boolean. Setiap blok pernyataan dimulai dengan BEGIN dan selesai dengan END.
USE AdventureWorks2022;
GO
DECLARE @AvgWeight DECIMAL(8, 2),
@BikeCount INT
IF (
SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
) > 5
BEGIN
SET @BikeCount = (
SELECT COUNT(*)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
SET @AvgWeight = (
SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
PRINT 'There are ' + CAST(@BikeCount AS VARCHAR(3)) + ' Touring-3000 bikes.'
PRINT 'The average weight of the top 5 Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
END
ELSE
BEGIN
SET @AvgWeight = (
SELECT AVG(Weight)
FROM Production.Product
WHERE Name LIKE 'Touring-3000%'
);
PRINT 'Average weight of the Touring-3000 bikes is ' + CAST(@AvgWeight AS VARCHAR(8)) + '.';
END;
GO
D. Gunakan IF berlapis... Pernyataan ELSE
Contoh berikut menunjukkan bagaimana IF...ELSE pernyataan dapat disarangkan di dalam pernyataan lain. Atur @Number variabel ke 5, 50, dan 500, untuk menguji setiap pernyataan.
DECLARE @Number INT;
SET @Number = 50;
IF @Number > 100
PRINT 'The number is large.';
ELSE
BEGIN
IF @Number < 10
PRINT 'The number is small.';
ELSE
PRINT 'The number is medium.';
END;
GO
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
E: Menggunakan kueri sebagai bagian dari ekspresi Boolean
Contoh berikut menggunakan IF...ELSE untuk menentukan mana dari dua respons yang akan ditampilkan pengguna, berdasarkan berat item dalam DimProduct tabel dalam AdventureWorksDW2012 database.
DECLARE @maxWeight FLOAT, @productKey INT;
SET @maxWeight = 100.00;
SET @productKey = 424;
IF @maxWeight <= (
SELECT [Weight]
FROM DimProduct
WHERE ProductKey = @productKey;
)
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is too heavy to ship and is only available for pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END
ELSE
BEGIN
SELECT @productKey,
EnglishDescription,
[Weight],
'This product is available for shipping or pickup.'
FROM DimProduct
WHERE ProductKey = @productKey;
END