Większość (prawdopodobnie wszystkie ) języki programowania zawierają pewną formę IF
instrukcja, która umożliwia programistom pisanie kodu warunkowego. Oznacza to, że kod, który wykona się tylko jeśli pewien warunek jest spełniony.
To bardzo prosta koncepcja. Zasadniczo wygląda to tak:
„Jeśli to, zrób to”.
Większość języków nazywa to po prostu IF
, ale niektóre mają własną odmianę nazwy (na przykład w ColdFusion/CFML nazywa się CFIF
).
W każdym razie zasadniczo robią to samo.
W SQL Server (a dokładniej w języku programowania T-SQL) nazywa się to IF
.
Przykład
Oto podstawowy przykład pokazujący, jak IF
oświadczenie działa.
IF 1 < 2 SELECT 'True';
Wynik:
True
W tym przypadku wyrażenie do oceny to 1 < 2
. Prawdą jest, że 1 jest mniejsze niż 2, więc SELECT
instrukcja została uruchomiona i True
został zwrócony.
Jeśli jednak wyrażenie jest fałszywe, nic się nie stanie.
Poniższy przykład to ilustruje:
IF 1 > 2 SELECT 'True';
Wynik:
Commands completed successfully.
Wszystko, co powiedział mi SQL Server, to to, że polecenie zostało pomyślnie zakończone. Nic innego nie zostało zwrócone, ponieważ nic innego nie zostało określone.
Oświadczenie IF… ELSE
W SQL Server, IF
instrukcja zawiera opcjonalny ELSE
, co pozwala podać alternatywę w przypadku, gdy wyrażenie zwróci wartość false.
Dlatego to tak, jakby powiedzieć „JEŚLI to, zrób to, INACZEJ, zrób to”.
W takim przypadku możemy dodać opcjonalny ELSE
do IF
oświadczenie, tak aby stało się IF... ELSE
oświadczenie.
IF 1 > 2
SELECT 'True';
ELSE
SELECT 'False';
Wynik:
False
Teraz otrzymujemy również wynik, gdy wyrażenie jest fałszywe.
Zagnieżdżone instrukcje IF
Jedna z największych zalet IF
oświadczenia jest to, że możesz je zagnieździć. Oznacza to, że możesz dodać więcej IF
oświadczenia wewnątrz oryginalnego, a więcej wewnątrz tych itp.
Możesz zagnieździć dowolną liczbę IF
oświadczenia, jak chcesz. Ogranicza Cię tylko ilość dostępnej pamięci.
Oto przykład zagnieżdżenia IF
oświadczenie wewnątrz innego.
DECLARE @bankBalance int = 123;
IF @bankBalance > 100
IF @bankBalance > 150
SELECT 'Rich!';
ELSE
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Wynik:
Wealthy
IF… ELSE IF instrukcje
Możesz również użyć go jako IF... ELSE IF
oświadczenie.
DECLARE @bankBalance int = 123;
IF @bankBalance > 150
SELECT 'Rich!';
ELSE IF @bankBalance > 100
SELECT 'Wealthy';
ELSE
SELECT 'Poor';
Wynik:
Wealthy