SQL Server IF…ELSE Warunek: Przykład zapytania T-SQL
Dlaczego potrzebujesz instrukcji warunkowych?
Instrukcje warunkowe w serwerze SQL pomagają zdefiniować różne logiki i działania dla różnych warunków. Umożliwia wykonanie różnych działań w oparciu o warunki zdefiniowane w wyciągu. W prawdziwym życiu wykonujesz wiele działań zależnych od wyniku innej czynności lub sytuacji.
Oto kilka przykładów instrukcji case SQL w czasie rzeczywistym:
- Jeśli jutro będzie padać, zaplanuję wycieczkę.
- Jeśli bilety lotnicze z mojego miasta będą tańsze niż 400 dolarów, pojadę na wakacje do Europy, w przeciwnym razie wolę jakieś pobliskie miejsce turystyczne.
Tutaj widać, że jedna akcja, taka jak podróż powyższa, to warunkowo zależny na wyniku innego działania, jakim jest pytanie: „czy jutro będzie padać deszcz, czy nie!”
Podobnie MS SQL zapewnia również możliwość warunkowego wykonywania instrukcji T-SQL.
IF… Else instrukcja w SQL Server
In MS SQL, JEŚLI INACZEJ to rodzaj Instrukcja warunkowa.
Dowolną instrukcję T-SQL można wykonać warunkowo za pomocą JEŚLI INACZEJ.
Poniższy rysunek wyjaśnia IF ELSE na serwerze SQL:
- Jeśli warunek ma wartość Prawdziwe, następnie instrukcje T-SQL, po których następuje IF warunek w serwerze SQL zostanie wykonany.
- Jeśli warunek ma wartość Fałszywy, następnie instrukcje T-SQL, po których następuje ELSE słowo kluczowe zostanie wykonane.
- Po wykonaniu instrukcji IF T-SQL lub ELSE T-SQL, wówczas wykonywanie innych bezwarunkowych instrukcji T-SQL jest kontynuowane.
IF… Else Składnia i reguły w SQL
Składnia:
IF <Condition> {Statement | Block_of_statement} [ ELSE {Statement | Block_of_statement}]
zasady:
- Warunek powinien być Wyrażenie logiczne, czyli warunek po ocenie daje wartość logiczną.
- JEŚLI W przeciwnym razie instrukcja w SQL może warunkowo obsłużyć pojedynczą instrukcję T-SQL lub blok instrukcji T-SQL.
- Blok instrukcji powinien zaczynać się od słowa kluczowego BEGIN i kończyć słowem kluczowym END.
- Użycie BEGIN i END pomaga serwerowi SQL zidentyfikować blok instrukcji, który należy wykonać i oddzielić go od pozostałych instrukcji T-SQL, które nie są częścią bloku IF…ELSE T-SQL.
- ELSE jest opcjonalne.
IF…ELSE z jedyną wartością liczbową w wyrażeniu boolowskim.
Warunek: PRAWDA
IF (1=1) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Warunek: FAŁSZ
IF (1=2) PRINT 'IF STATEMENT: CONDITION IS TRUE' ELSE PRINT 'ELSE STATEMENT: CONDITION IS FALSE'
Założenie: Załóżmy, że masz tabelę jako „Guru99” z dwiema kolumnami i czterema wierszami, jak pokazano poniżej:
Użyjemy „Guru99” tabeli w dalszych przykładach
IF…ELSE ze zmienną w wyrażeniu boolowskim.
Warunek: PRAWDA
DECLARE @Course_ID INT = 4 IF (@Course_ID = 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
Warunek: FAŁSZ
DECLARE @Course_ID INT = 4 IF (@Course_ID != 4) Select * from Guru99 where Tutorial_ID = 4 ELSE Select * from Guru99 where Tutorial_ID != 4
JEŻELI…ELSE z początkiem końca
Warunek: PRAWDA
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Warunek: FAŁSZ
DECLARE @Course_ID INT = 2 IF (@Course_ID >=3) BEGIN Select * from Guru99 where Tutorial_ID = 1 Select * from Guru99 where Tutorial_ID = 2 END ELSE BEGIN Select * from Guru99 where Tutorial_ID = 3 Select * from Guru99 where Tutorial_ID = 4 END
Instrukcja IF z No Else
Możesz użyć instrukcji IF w SQL bez części ELSE. Pamiętaj, że stwierdziliśmy, że część ELSE jest opcjonalna. Na przykład:
DECLARE @Course_ID INT = 2 IF (@Course_ID <=2) Select * from Guru99 where Tutorial_ID = 1
Wyświetla się następujący komunikat:
Wykonanie warunku false nie da żadnego wyniku. Rozważmy następujące zapytanie
DECLARE @Course_ID INT = 2 IF (@Course_ID <=0) Select * from Guru99 where Tutorial_ID = 1
Wynik to
Zagnieżdżone instrukcje IF…Else
W przeciwieństwie do innych języki programowania, nie można dodać instrukcji ELSE IF w warunku IF ELSE w języku SQL. Właśnie dlatego możesz zagnieżdżać IF ELSE w instrukcjach zapytań SQL. Pokazano to poniżej:
DECLARE @age INT; SET @age = 60; IF @age < 18 PRINT 'underage'; ELSE BEGIN IF @age < 50 PRINT 'You are below 50'; ELSE PRINT 'Senior'; END;
- W tym przykładzie kod wyświetli osobę niepełnoletnią, jeśli wartość @age będzie mniejsza niż 18.
- Jeśli nie, zostanie wykonana część ELSE. Część ElSE zawiera zagnieżdżoną opcję IF…ELSE.
- Jeśli wartość @age jest niższa niż 50, zostanie wyświetlony komunikat Jesteś poniżej 50 lat. Jeśli żaden z tych warunków nie jest spełniony, kod wyświetli Senior.
Podsumowanie
- Zmienne są obiektem, który pełni rolę symbolu zastępczego.
- Blok instrukcji powinien zaczynać się od słowa kluczowego BEGIN i kończyć słowem kluczowym END.
- Użycie opcji Else w instrukcji IF… ELSE jest opcjonalne
- Możliwe jest także zagnieżdżenie warunku SQL IF ELSE w innej instrukcji IF…ELSE.