Aracılığıyla paylaş


ELSE IF...else) (Transact-SQL)

Koşullara göre yürütülmesini getirir bir Transact-SQL deyim.Transact-SQLdeyim ( sql_statement) aşağıdaki Boolean_expression* *, yürütülen Boolean_expression değerlendiren true.Bir başka isteğe bağlı else anahtar sözcüktür Transact-SQLolandeyim ne zaman yürütülen Boolean_expression değerlendiren false ya da null.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

IF Boolean_expression { sql_statement | statement_block } 
    [ ELSE { sql_statement | statement_block } ] 

Bağımsız değişkenler

  • Boolean_expression
    true veya false döndüren ifade edilir.Boolean_expression İçeren bir select deyimselect deyim parantez. alınmalıdır

  • { sql_statement | statement_block }
    Herhangi bir geçerli Transact-SQLdeyim veya bir deyimblokile tanımlandığı gibi deyimgruplandırma . (toplu iş) gibi bir deyimblok tanımlamak için başlangıç ve BİTİŞ akış denetimli dil anahtar sözcüklerini kullanın. Ancak tüm Transact-SQL ifadeleri BEGIN içinde geçerli...Son blok, belirli Transact-SQL ifadeleri değil birlikte gruplandırılmış aynı toplu iş içinde (deyim blok).

Sonuç türleri

Boolean

Örnekler

A.Kullanarak basit bir Boole ifade

Aşağıdaki örnek olan basit bir Boole ifade (1=1), doğrudur ve bu nedenle ilk deyimyazdırır.

IF 1 = 1 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;

Aşağıdaki örnek olan basit bir Boole ifade (1=2), yanlış olduğu ve bu nedenle ikinci deyimyazdırır.

IF 1 = 2 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
GO

B.Bir Booleifadebir parçası olarak sorgu kullanma

Aşağıdaki örnek, Boole ifadebir parçası olarak bir sorgu yürütür.10 Bisikletler içinde olduğundan Productuyantablo WHEREyan tümce, ilk baskı deyim yürütmek. Değişiklik > 5 için > 15 yürütmek deyim ikinci bölümü nasıl olabilir görmek için.

USE AdventureWorks2008R2;
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.Bir deyimblokkullanma

Aşağıdaki örnek, Booleifade bir parçası olarak bir sorgu yürütür ve Booleifadesonucuna dayalı biraz farklı deyim bloğu yürütür. Her deyim blok ile başlayan BEGIN ile tamamlar ve END.

USE AdventureWorks2008R2;
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.Kullanarak, iç içe...else ifadeleri

Aşağıdaki örnek, bir IF nasıl gösterir... else deyim diğerinin içinde yuvalanabilir.Set @Number değişkenine 5, 50, ve 500 her deyimsı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