IF...ELSE (Transact-SQL)

Nakłada warunki realizacji Transact-SQL instrukcja.Transact-SQLinstrukcja , występujący za kluczowe IF i jego stan jest wykonywany, jeśli warunek jest spełniony: Zwraca wartość PRAWDA,wyrażenie wartość logiczna. Wprowadzono opcjonalny słowie kluczowym ELSE, innego Transact-SQL instrukcja wykonywany, kiedy nie jest spełniony warunek IF: wartość logicznawyrażenie zwraca wartość FALSE.

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śliwyrażenie wartość logicznazawiera instrukcjaSELECT, instrukcja SELECT musi być ujęte w nawiasy.

  • { sql_statement| statement_block }
    Dowolnego Transact-SQL instrukcja lub instrukcja grupowanie określonych za pomocą instrukcja blok.Chyba że instrukcja blok jest używana, jeżeli lub inny warunek może wpływać na wydajność tylko jeden Transact-SQL instrukcja.

    Aby zdefiniować instrukcja blok, użyj słowa kluczowe sterowania przepływem rozpoczęcia i zakończenia.

Uwagi

IF...Konstrukcja ELSE służą instancje, procedur przechowywanych i kwerend ad hoc.Użyto tej konstrukcji procedura składowanajest często używany do testowania istnienia pewnych parametrów.

Jeżeli testy mogą być zagnieżdżane po innym IF lub ELSE.Ograniczenie liczby poziomów zagnieżdżenia zależy od dostępnej pamięci.

Przykłady

W poniższym przykładzie użyto IF…ELSE z danych wyjściowych z uspGetList procedura składowana.Ta procedura składowana jest zdefiniowany w Tworzenie procedur przechowywanych.W tym przykładzie procedura składowana zwraca listę rowery z ceną listy mniej niż $700.Powoduje to, że pierwszy PRINT instrukcja wykonać.

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 zapoznać się z większą liczbą przykładów, zobacz ELSE (JEŚLI...ELSE) Transact-SQL).