Aracılığıyla paylaş


(...) EĞER BAŞKABAŞKA) (Transact-sql)

Yürütme koşullara getiren bir Transact-SQLdeyimi. Transact-SQLDeyimi (sql_statement) aşağıdaki Boolean_expression * * yürütülür Boolean_expressiontrue değerlendirir. Diğer isteğe bağlı else anahtar kelime olduğunu Transact-SQLdeyimi ne zaman idam Boolean_expressionfalse ya da null olarak değerlendirilir.

Konu bağlantısı simgesi Transact-SQL Sözdizim 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ürür bir ifadesidir. Eğer Boolean_expressioniçeren bir select deyimi, bir select deyimi parantez içine alınmalıdır.

  • { sql_statement | statement_block }
    Herhangi bir geçerli Transact-SQLdeyimi veya deyimi bloğu ile tanımlanan gruplandırma deyimi. Deyimi bloğu (toplu) tanımlamak için başlangıç ve bitiş akış denetimi dil anahtar kelimeler kullanın. Her ne kadar tüm Transact-SQLdeyimleri bir BEGIN içinde geçerli...SON blok, belirli Transact-SQLdeyimleri değil gruplandırılmış birlikte aynı toplu iş içinde (deyimi bloğu).

Sonuç türleri

Boolean

Örnekler

A.Basit bir Boolean ifadesi kullanarak

Aşağıdaki örnek, basit bir Boolean ifadesi vardır (1=1), doğrudur ve bu nedenle ilk deyimi yazdırır.

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

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

Aşağıdaki örnek, basit bir Boolean ifadesi vardır (1=2) yanlış olduğunu ve bu nedenle ikinci deyimi yazdırır.

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

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

B.Bir Boolean ifadesi bir parçası olarak sorgu kullanma

Aşağıdaki örnek, Boolean deyimin parçası olarak bir sorgu yürütür. Çünkü 10 motosiklet Producttablo bu buluşun WHEREyan tümcesi ilk baskı deyimi yürütme. Değişim > 5için > 15deyimi ikinci bölümü nasıl yürütmesine görmek için.

USE AdventureWorks2012;
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

USE AdventureWorks2012;
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.Deyimi bloğu kullanma

Aşağıdaki örnek, Boolean deyim bir parçası olarak bir sorgu yürütür ve Boolean deyim sonucuna dayalı biraz farklı deyimi bloğu yürütür. Her deyimi bloğu ile başlayan BEGINve ile tamamlayan END.

USE AdventureWorks2012;
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

USE AdventureWorks2012;
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 deyimi, başka içinde yuvalanmış olabilir. Set @Numberdeğişkenine 5, 50, ve 500her sınav 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

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

Ayrıca bkz.

Başvuru

alter TETIKLEYICI (Transact-sql)

Akış denetimi dil (Transact-sql)

CREATE TRIGGER (Transact-SQL)

EĞER...BAŞKA (Transact-sql)