Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Transact-SQL deyiminin yürütülmesine koşullar uygular. boolean_expression olarak değerlendirilirse boolean_expression izleyen Transact-SQLdeyimi (TRUE) yürütülür. İsteğe bağlı ELSE anahtar sözcük, boolean_expression veya olarak değerlendirildiğinde FALSE yürütülen alternatif NULL deyimidir.
Transact-SQL söz dizimi kuralları
Syntax
IF boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
Arguments
boolean_expression
veya TRUEdöndüren FALSE bir ifade.
boolean_expression bir SELECT deyim içeriyorsa, SELECT deyimi parantez içine alınmalıdır.
{ sql_statement | statement_block }
Deyim bloğuyla tanımlanan geçerli Transact-SQL deyimi veya deyim gruplandırma. Bir deyim bloğu (batch) tanımlamak için akış denetimi dili anahtar sözcüklerini BEGIN ve ENDkullanın. Tüm Transact-SQL deyimleri bir BEGIN...END blok içinde geçerli olsa da, belirli Transact-SQL deyimleri aynı toplu iş (deyim bloğu) içinde birlikte gruplandırılmamalıdır.
Dönüş türleri
Boolean
Examples
Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.
A. Boole ifadesi kullanma
Aşağıdaki örnekte true olan bir Boole ifadesi (1 = 1) vardır ve bu nedenle ilk deyimi yazdırır.
IF 1 = 1 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
Aşağıdaki örnekte false olan bir Boole ifadesi (1 = 2) vardır ve bu nedenle ikinci deyimi yazdırır.
IF 1 = 2 PRINT 'Boolean expression is true.'
ELSE PRINT 'Boolean expression is false.';
GO
B. Boole ifadesinin parçası olarak sorgu kullanma
Aşağıdaki örnek Boole ifadesinin bir parçası olarak bir sorgu yürütür. Tabloda yan tümcesindeki Product koşulu WHERE karşılayan 10 bisiklet olduğundan, ilk print deyimi yürütülür. deyiminin ikinci bölümünün nasıl yürütülebileceğini görmek için olarak değiştirebilirsiniz > 5> 15.
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. Deyim bloğu kullanma
Aşağıdaki örnek Boole ifadesinin bir parçası olarak bir sorgu yürütür ve ardından Boole ifadesinin sonucuna göre biraz farklı deyim blokları yürütür. Her deyim bloğu ile BEGIN başlar ve ile ENDtamamlar.
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. İç içe EĞER kullan... ELSE deyimleri
Aşağıdaki örnekte, bir deyimin başka bir IF...ELSE deyim içinde nasıl iç içe yerleştirilebileceği gösterilmektedir.
@Number Her deyimi test etmek için 5değişkenini , 50, ve 500olarak ayarlayın.
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
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
E: Boole ifadesinin bir parçası olarak sorgu kullanma
Aşağıdaki örnek, veritabanındaki tablodaki IF...ELSE bir öğenin DimProduct ağırlığına göre kullanıcıyı göstermek için iki yanıtta hangisinin gösterileceğini belirlemek için kullanırAdventureWorksDW2012.
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
İlgili içerik
- ALTER TRIGGER (Transact-SQL)
- Akış Dili Denetimi (Transact-SQL)
- TETİKLEYİCİ OLUŞTUR (Transact-SQL)
- EĞER... ELSE (Transact-SQL)