ELSE (IF... ELSE) (Transact-SQL)
Koşullara göre yürütülmesini getirir bir Transact-SQL deyim. The Transact-SQL statement (sql_statement) following the Boolean_expressionis executed if the Boolean_expression evaluates to TRUE.Isteğe bağlı ELSE anahtar sözcüğü bir başka durumda. Transact-SQL deyim, ne zaman yürütüldü. Boolean_expression yanlış'sa ya da null olur.
IF Boolean_expression { sql_statement | statement_block }
[ ELSE { sql_statement | statement_block } ]
Bağımsız değişkenler
Boolean_expression
DOĞRU veya YANLıŞ döndüren ifade belirtilir.If the Boolean_expression contains a SELECT deyim, the SELECT deyim must be enclosed in parentheses.{ sql_statement | statement_block }
Herhangi bir geçerli mi Transact-SQL deyim veya blok deyim ile tanımlanan gruplandırma deyim. Bir deyim blok (toplu iş iş iş) tanımlamak için , BEGIN ve END akış denetimli dil anahtar sözcüklerini kullanın.Ancak tüm Transact-SQL ifadeleri BEGIN... END blok içinde geçerli belirli Transact-SQL ifadeleri birlikte aynı toplu iş iş iş içinde (deyim blok) gruplandırılmasını değil.
Sonuç türleri
Boolean
Örnekler
C.Basit örnekleri
Aşağıdaki örnek bir basit bir Boole ifadesi (sahiptir...1=1) doğru ve bu nedenle, ilk ifade yazdırır.
IF 1 = 1 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
Aşağıdaki örnek bir basit bir Boole ifadesi (sahiptir...1=2), yanlış ise ve bu nedenle, ikinci ifade yazdırır.
IF 1 = 2 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
GO
b.Örnek bir sorgu kullanma
Aşağıdaki örnek, Boole ifadesi bir parçası olarak bir sorgu yürütür.10 Bisikleti içinde olduğundan Product Bu karşılamak tablo WHERE yan tümce, ilk yazdırma deyim eder yürütmek. Değiştir > 5 Kime > 15 nasıl deyim ikinci bir parçası olabilecek görmek için yürütmek.
USE AdventureWorks
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.Örnek deyim blok kullanma
Aşağıdaki örnek, Boole ifade bir parçası olarak bir sorgu yürütür ve sonra Boole ifade sonucuna dayalı biraz Ekstre blokları yürütür.deyim blokların başlar BEGIN ve ile tamamlanır. END.
USE AdventureWorks
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.Örneği ıF/ELSE deyimlerinin iç içe geçmiş
Aşağıdaki örnek, nasıl bir IF... ELSE deyiminin başka yuvalanabilir gösterir.küme @Number değişkene 5, 50, ve 500 her deyim sınamak için .
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
See Also