Aracılığıyla paylaş


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.

Topic link iconTransact-SQL sözdizimi kuralları

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