Jak działa CASE WHEN w SQL?

CASE WHEN w SQL

Funkcja CASE WHEN w SQL

Funkcja CASE WHEN w SQL służy do wykonywania warunkowych operacji w zapytaniach bazodanowych. Dzięki funkcji CASE WHEN można tworzyć elastyczne i złożone wyrażenia logiczne, które pozwalają na zwrócenie różnych wartości w zależności od spełnienia określonych warunków.

Składnia funkcji CASE WHEN

Funkcja CASE WHEN ma następującą składnię:

CASE
    WHEN warunek1 THEN wartość1
    WHEN warunek2 THEN wartość2
    ...
    ELSE wartość_domyslna
END

🧑‍💻 Gdzie:

  • warunek1, warunek2, … to wyrażenia logiczne, które są sprawdzane w kolejności.
  • wartość1, wartość2, … to wartości zwracane, gdy odpowiadający warunek jest spełniony.
  • wartość_domyslna to wartość zwracana, gdy żaden z warunków nie jest spełniony. Parametr ELSE jest opcjonalny.

📌 Przykład:

Załóżmy, że mamy tabelę pracownicy, która zawiera kolumny id_pracownika, nazwisko, wiek oraz stanowisko. Chcemy przyporządkować pracownikom oceny na podstawie ich wieku w następujący sposób: jeśli wiek pracownika jest poniżej 30 lat, otrzymuje ocenę „Młody”; jeśli wiek mieści się między 30 a 50 lat, otrzymuje ocenę „Doświadczony”; w przeciwnym razie, pracownik otrzymuje ocenę „Senior”.

Zapytanie SQL, które realizuje takie przypisanie, może wyglądać następująco:

SELECT 
    id_pracownika,
    nazwisko,
    wiek,
    CASE
        WHEN wiek < 30 THEN 'Młody'
        WHEN wiek BETWEEN 30 AND 50 THEN 'Doświadczony'
        ELSE 'Senior'
    END AS ocena_wiekowa
FROM 
    pracownicy;

📌 Gdzie:

  • id_pracownika to identyfikator pracownika.
  • nazwisko to nazwisko pracownika.
  • wiek to wiek pracownika, który jest oceniany.
  • ocena_wiekowa to nowa kolumna, w której będą przechowywane oceny wieku pracowników na podstawie warunków zdefiniowanych w funkcji CASE WHEN.

Powyższe zapytanie zwróci listę pracowników z przypisaną oceną wiekową na podstawie ich wieku.