Udostępnij za pośrednictwem


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.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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