Przychodzi taki moment podczas programowania baz danych, że nie da się, po prostu się nie da napisać zapytania. Trzeba stworzyć dwa różne zapytania. Przychodzi nam wtedy z pomocą instrukcja warunkowa.

Jak zatem sterować przebiegiem? Wystarczy skorzystać z instrukcji warunkowej IF:

IF warunek
BEGIN
Instrukcje
END

W tym przypadku instrukcje zostaną wykonane tylko wtedy, gdy warunek będzie spełniony.

Zadziała to tak:
krok 1: sprawdzamy, czy warunek jest spełniony,
krok 2a: jeśli warunek spełniony idziemy do BEGIN,
krok 3a: zostają wykonane instrukcje,
krok 4a: przechodzimy do END, słowa kończącego blok instrukcji,
krok 2b: jeśli warunek jest niespełniony przechodzimy do END, czyli słowa kończącego blok instrukcji.

Mamy również możliwość wykonania instrukcji w zależności od tego, czy warunek jest spełniony, czy też nie:

IF warunek
BEGIN
Instrukcje jeśli warunek spełniony
END
ELSE
BEGIN
Instrukcje jeśli warunek niespełniony
END

Teraz krok po kroku jak to zadziała:

krok 1: sprawdzamy, czy warunek jest spełniony,
krok 2a: jeśli warunek spełniony zostaje wykonany pierwszy blok instrukcji,
krok 3a: przechodzimy do END, słowa kończącego blok instrukcji,
krok 4a: przechodzimy do drugiego END, słowa kończącego drugi blok instrukcji,
krok 2b: jeśli warunek niespełniony przechodzimy do ELSE,
krok 3b: wykonujemy drugi blok instrukcji,
krok 4b: przechodzimy do END, słowa kończącego drugi blok instrukcji.

Teraz przykład, który zademonstruje działanie:

IF 2=2
BEGIN
SELECT 'Warunek spełniony'
END
ELSE
BEGIN
SELECT 'Warunek niespełniony'
END

Teraz dokładnie to samo wywołanie, ale dla niespełnionego warunku:

IF 2=3
BEGIN
SELECT 'Warunek spełniony'
END
ELSE
BEGIN
SELECT 'Warunek niespełniony'
END

W ten sposób możemy sterować przebiegiem naszego skryptu. Najważniejsze jest jednak to, czy w danym przypadku faktycznie potrzebna jest instrukcja warunkowa? Może wystarczy zmienić np. to, co podaliśmy w klauzuli WHERE, aby uzyskać taki sam efekt?

Podaj e-mail, na który wyślę Ci informacje o październikowych webinarach

Podaj e-mail, na który wyślę Ci informacje o październikowych webinarach

Sukces! Sprawdź teraz swojego maila. Jeśli nie otrzymałeś wiadomości w ciągu 5 min, napisz na krystian@geek-on.pl.