Udostępnij za pośrednictwem


IF... ELSE (języka Transact-SQL)

Nakłada warunki na wykonywanie instrukcji języka Transact-SQL.Instrukcja języka Transact-SQL i jego warunku jest wykonywana, jeśli ten warunek jest spełniony: wyrażenie logiczne zwraca wartość TRUE.Opcjonalne słowo kluczowe ELSE wprowadza następną instrukcję języka Transact-SQL, która jest wykonywana, jeśli warunek IF nie jest spełniony: wyrażenie logiczne zwraca wartość FALSE.

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

  • Boolean_expression
    Wyrażenie zwracające wartość TRUE lub FALSE.Jeśli wyrażenie logiczne zawiera instrukcję SELECT, musi ona być ujęta w nawias.

  • { sql_statement| statement_block }
    Jest dowolną Transact-SQL Instrukcja lub instrukcji grupowanie zgodnie z definicją za pomocą zestawu instrukcji. Chyba że blok instrukcji jest używany, jeżeli lub ELSE warunek może mieć wpływ na wydajność tylko jeden Transact-SQL Instrukcja.

    Aby zdefiniować blok instrukcja, należy użyć słowa kluczowe sterowania przepływem BEGIN i END.

Remarks

Konstrukcji IF...ELSE można używać w partiach, procedurach składowanych i kwerendach ad hoc.Jeśli ta konstrukcja jest używana w procedurze składowanej, często służy ona do sprawdzania istnienia pewnego parametru.

Testy IF mogą być zagnieżdżone po innym słowie kluczowym IF lub ELSE.Limit liczby zagnieżdżonych poziomów zależy od ilości dostępnej pamięci.

Przykłady

Jeśli IF…ELSEpredicate_expressionuspGetList ma wartość false, zdarzenie zostało porzucone przez sesja przed przetwarzanych przez akcje i cele w sesja. Ta procedura przechowywana jest zdefiniowany w Tworzenie procedur przechowywanych.W tym przykładzie procedura przechowywana zwraca listę rowery z cena katalogowa mniej niż $700. Powoduje to, że pierwszy PRINT Instrukcja.

DECLARE @compareprice money, @cost money 
EXECUTE Production.uspGetList '%Bikes%', 700, 
    @compareprice OUT, 
    @cost OUTPUT
IF @cost <= @compareprice 
BEGIN
    PRINT 'These products can be purchased for less than 
    $'+RTRIM(CAST(@compareprice AS varchar(20)))+'.'
END
ELSE
    PRINT 'The prices for all products in this category exceed 
    $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'

Aby uzyskać więcej przykładów zobacz ELSE (IF...ELSE) (Transact-SQL).