Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak działa instrukcja IF w SQL Server

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nazwy plików SQL Server a wersje

  2. Zapytanie SQL Server:szybkie z dosłownym, ale wolne z zmienną

  3. Poprawki związane z wydajnością dla SQL Server 2012

  4. Jaki jest dobry sposób na usunięcie wszystkich białych znaków z ciągu w T-SQL bez UDF i bez CLR?

  5. Zamień pojedyncze cudzysłowy w SQL Server