(...) 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.
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)