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