ELSE (JEŚLI...ELSE) Transact-SQL)
Nakłada warunki realizacji Transact-SQL instrukcja.Transact-SQLinstrukcja ( sql_statement) następujące Boolean_expression* *jest wykonywana, jeśli Boolean_expression ma wartość TRUE.Opcjonalne słowo kluczowe ELSE jest alternatywny Transact-SQL instrukcja , która jest wykonywany, kiedy Boolean_expression ma wartość FALSE lub wartość NULL.
Składnia
IF Boolean_expression { sql_statement | statement_block }
[ ELSE { sql_statement | statement_block } ]
Argumenty
Boolean_expression
To wyrażenie , które zwraca wartość PRAWDA lub FAŁSZ.Jeśli Boolean_expression zawiera SELECT instrukcja instrukcja SELECT musi być ujęty w nawiasy.{ sql_statement | statement_block }
Wszelkie obowiązuje Transact-SQL instrukcja lub instrukcja grupowanie określonych z instrukcja blok.Aby zdefiniować instrukcja blok (partia), należy użyć słów kluczowych język sterowania przepływem rozpoczęcia i zakończenia.Chociaż wszystkie Transact-SQL instrukcje są prawidłowe w BEGIN...KONIEC blokniektórych Transact-SQL sprawozdania nie powinny być zgrupowane razem w tej samej partia (instrukcja blok).
Typy wyników
Boolean
Przykłady
A.Za pomocą prostejwyrażenie wartość logiczna
Poniższy przykład ma prostywyrażenie wartość logiczna(1=1), jest spełniony i, w związku z tym, drukuje pierwsza instrukcja.
IF 1 = 1 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
Poniższy przykład ma prostywyrażenie wartość logiczna(1=2) ma wartość false, a zatem drukuje druga instrukcja.
IF 1 = 2 PRINT 'Boolean_expression is true.'
ELSE PRINT 'Boolean_expression is false.' ;
GO
B.Używanie kwerendy jako częśćwyrażenie wartość logiczna
Poniższy przykład wykonuje kwerendę jako częśćwyrażenie wartość logiczna. Ponieważ rowery 10 w Product tabela spełniają WHERE klauzula, pierwszy drukowania instrukcja będzie wykonać.Zmień > 5 do > 15 Aby zobaczyć, jak druga część instrukcja może wykonać.
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.Za pomocą instrukcja blok
Poniższy przykład wykonuje kwerendę jako częśćwyrażenie wartość logiczna, a następnie wykonuje bloki nieco instrukcja oparte na wynikwyrażenie wartość logiczna. Zaczyna się od każdej instrukcja blok BEGIN i kończy się z 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.Za pomocą zagnieżdżone, jeśli...Instrukcji ELSE
W poniższym przykładzie pokazano, jak IF... ELSE, instrukcja może być zagnieżdżona w innej.Ustaw @Number Zmienna 5, 50, i 500 do testowania każda instrukcja.
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
Zobacz także