SQL CASE

SQL CASE


    


DEFINICJA

Funkcje CASE służy do zastępowania, w wynikach zapytania, wartości "oryginalnych" w kolumnach innymi wartościami w zależonści od zdefiniowanych przez nas warunków.

SQL CASE składnia

CASE
    WHEN warunek1 THEN nowa_wartość_dla_rekodów_spełniająych_ten_warunek
    WHEN warunek2 THEN nowa_wartość_dla_rekodów_spełniająych_ten_warunek   
    WHEN warunek3 THEN nowa_wartość_dla_rekodów_spełniająych_ten_warunek
    ELSE nowa_wartość_dla_rekodów_nie_spełniająych_powyższych_warunków
END   


Przykład zastosowania CASE (baza Adventureworks)

Wyświetl wszystkie osoby z bazy wraz z "rodzajem powiązania" z firmą. Wyświetl pełną nazwę typu osoby.

SELECT
    LastName
    ,Firstname
    ,CASE
        WHEN PersonType = 'EM' THEN 'Employee'
        WHEN PersonType = 'SC' THEN 'Store Contact'
        WHEN PersonType = 'IN' THEN 'Individual (retail) customer'
        WHEN PersonType = 'SP' THEN 'Sales person'
        WHEN PersonType = 'VC' THEN 'Vendor contact'
        WHEN PersonType = 'GC' THEN 'General contact'
        ELSE 'b.d.'    
     END AS [Typ osoby]
FROM    
    Person.Person

 


 Przykład zastosowania CASE (baza Northwind)

Wyświetl tytuly grzecznościowe pracowników i zamień je na polskie nazwy.

SELECT
    LastName AS Nazwisko
    ,FirstName AS Imię
    ,CASE
        WHEN TitleOfCourtesy = 'Mr.' THEN 'Pan'
        WHEN TitleOfCourtesy = 'Mrs.' THEN 'Pani'
        WHEN TitleOfCourtesy = 'Ms.' THEN 'Panna'
        WHEN TitleOfCourtesy = 'Dr.' THEN 'Doktor'
        ELSE 'b.d.'
    END AS TytułGrzecznościowy
FROM    
    Employees