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:

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:

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:

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

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?