PostgreSQL PŘÍPADĚ

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.