Shrnutí: v tomto tutoriálu, se dozvíte, jak používat PostgreSQL PŘÍPADĚ podmíněného výrazu do formuláře podmíněné dotazy.
výraz PostgreSQL CASE
je stejný jako výraz IF/ELSE
v jiných programovacích jazycích. To vám umožní přidat if-else logiku dotazu tvořit silný dotaz.
Od CASE
je výraz, můžete jej použít v jakékoliv místech, kde výraz může být použit např.,SELECT
, WHERE
, GROUP BY
, a HAVING
klauzule.
výraz CASE
má dvě formy: obecnou a jednoduchou formu.
1) Obecné PostgreSQL PŘÍPADĚ, že výraz
následující příklad ilustruje obecný tvar CASE
prohlášení:
Code language: SQL (Structured Query Language) (sql)
V této syntaxe, každá podmínka (condition_1
, condition_2
…) je logický výraz, který vrátí buď true
nebo false
.
když podmínka vyhodnotí na false
, výraz CASE
vyhodnotí další podmínku shora dolů, dokud nenajde podmínku, která vyhodnotí na true
.
pokud se podmínka vyhodnotí na true
, výraz CASE
vrátí odpovídající výsledek, který následuje po podmínce. Pokud například condition_2
vyhodnotí hodnotu true
, výraz CASE
vrátí hodnotu result_2
. Také okamžitě přestane vyhodnocovat další výraz.
V případě, že všechny podmínky vyhodnotit false
, CASE
výraz vrátí výsledek (else_result
), který následuje ELSE
klíčové slovo. Pokud vynecháte klauzuli ELSE
, výraz CASE
vrátí NULL
.
pojďme se podívat na tabulku film
z ukázkové databáze.
A) obecný příklad
Předpokládejme, že chcete označit filmy podle jejich délky na základě následujícího postupu:
- pokud je délka kratší než 50 minut, film je krátký.
- je-li délka větší než 50 minut a menší nebo rovna 120 minutám, je film střední.
- pokud je délka delší než 120 minut, je film dlouhý.
použít této logiky, můžete použít CASE
výraz SELECT
prohlášení takto:
Code language: PHP (php)
Výstup:
Všimněte si, že jsme se umístili sloupci alias duration
po CASE
výraz.
B) použití případu s souhrnnou funkcí příklad
Předpokládejme, že chcete filmům přiřadit cenové segmenty s následující logikou:
- pokud je cena pronájmu 0,99, je film ekonomický.
- pokud je nájemné 1,99, film je hmotnost.
- pokud je cena pronájmu 4,99, je film prémiový.
a chcete znát počet filmů, které patří k ekonomice, hmotnosti a prémii.
V tomto případě, můžete použít CASE
vyjádření k výstavbě dotaz takto:
Code language: SQL (Structured Query Language) (sql)
výsledek dotazu je následující:
v tomto příkladu jsme použili výraz CASE
k vrácení 1 nebo 0, pokud nájemné spadá do každého cenového segmentu. A použili jsme funkci SUM
pro výpočet celkového počtu filmů pro každý cenový segment.
2) Jednoduché PostgreSQL PŘÍPADĚ, že výraz
PostgreSQL poskytuje další forma CASE
výraz s názvem jednoduchý formulář takto:
Code language: SQL (Structured Query Language) (sql)
CASE
první vyhodnocuje expression
a porovnává výsledek s každou hodnotou( value_1
, value_2
, …) v WHEN
doložky postupně, dokud nenajde shodu.
jakmile se výsledek expression
rovná hodnotě (value1, value2 atd.) v klauzuli WHEN
vrátí CASE
odpovídající výsledek v klauzuli THEN
.
Pokud CASE
není najít nějakou shodu, vrátí else_result
následuje ELSE
, nebo NULL
hodnotu, pokud ELSE
není k dispozici.
A) jednoduchý příklad případového výrazu PostgreSQL
následující příkaz používá výraz CASE
k přidání popisu hodnocení na výstup:
Code language: PHP (php)
V tomto příkladu jsme použili jednoduchý CASE
vyjádření k porovnání hodnocení z film
tabulka s některými doslovný hodnoty jako G, PG, NC17, PG-13 a vrátí odpovídající hodnocení popis.
>B) Pomocí jednoduchých PostgreSQL PŘÍPADĚ, že výraz s agregační funkce příklad
následující prohlášení používá CASE
výraz SUM
funkce pro výpočet počet filmů v jednotlivých hodnocení:
Code language: PHP (php)
V tomto kurzu jste se naučili, jak používat PostgreSQL CASE
vyjádření k formě složité dotazy.
- byl tento návod užitečný ?
- YesNo