PostgreSQL CASE

Összegzés: ebben az oktatóanyagban megtudhatja, hogyan használhatja a PostgreSQL CASE feltételes kifejezést feltételes lekérdezések létrehozásához.

a PostgreSQL CASE kifejezés ugyanaz, mint a IF/ELSE utasítás más programozási nyelvekben. Ez lehetővé teszi az if-else logika hozzáadását a lekérdezéshez, hogy hatékony lekérdezést képezzen.

mivel a CASE egy kifejezés, minden olyan helyen használhatja, ahol egy kifejezés használható, pl.,SELECT, WHERE, GROUP BY, és HAVING záradék.

a CASE kifejezésnek két formája van: általános és egyszerű forma.

1) Általános PostgreSQL ESET kifejezés

az alábbiakban bemutatjuk a CASE utasítás általános formáját:

Code language: SQL (Structured Query Language) (sql)

ebben a szintaxisban minden feltétel (condition_1, condition_2…) egy logikai kifejezés, amely vagy true vagy falseértéket ad vissza.

amikor egy feltétel értéke false, a CASEkifejezés kiértékeli a következő feltételt fentről lefelé, amíg meg nem találja a true értéket.

ha egy feltétel értéke true, a CASE kifejezés a feltételt követő megfelelő eredményt adja vissza. Ha például a condition_2 értéke true, a CASEkifejezés a result_2 értéket adja vissza. Ezenkívül azonnal leállítja a következő kifejezés értékelését.

abban az esetben, ha az összes feltétel false értékre kerül, a CASE kifejezés aELSE kulcsszót követő eredményt (else_result) adja vissza. Ha kihagyja a ELSE záradékot, a CASE kifejezés NULLértéket ad vissza.

vessünk egy pillantást a film táblázatra a minta adatbázisból.

A) Általános példa

tegyük fel, hogy a filmeket hosszuk szerint szeretné címkézni a következő logika alapján:

  • ha a hossza kevesebb, mint 50 perc, a film rövid.
  • ha a hossza 50 percnél hosszabb, de legfeljebb 120 perc, a film közepes.
  • ha a hossza nagyobb, mint 120 perc, a film hosszú.

ennek a logikának az alkalmazásához használhatja a CASE kifejezést a SELECT utasításban az alábbiak szerint:

Code language: PHP (php)

kimenet:

ne feledje, hogy a duration oszlop álnevet a CASE kifejezés után helyeztük el.

B) eset használata aggregált függvénnyel példa

tegyük fel, hogy árszegmenseket szeretne rendelni a következő logikával rendelkező filmekhez:

  • ha a bérleti díj 0,99, a film gazdaságos.
  • ha a bérleti díj 1,99, a film tömeg.
  • ha a bérleti díj 4,99, a film prémium.

és tudni szeretné, hogy hány film tartozik a gazdasághoz, a tömeghez és a prémiumhoz.

ebben az esetben a CASE kifejezéssel a következőképpen állíthatja össze a lekérdezést:

Code language: SQL (Structured Query Language) (sql)

a lekérdezés eredménye a következő:

ebben a példában a CASE kifejezést használtuk 1 vagy 0 visszatérítésére, ha a bérleti díj az egyes árszegmensekbe esik. A SUM függvényt alkalmaztuk az egyes árszegmensek összes filmjének kiszámításához.

2) egyszerű PostgreSQL CASE expression

PostgreSQL nyújt egy másik formája a CASE kifejezés úgynevezett egyszerű formában az alábbiak szerint:

Code language: SQL (Structured Query Language) (sql)

a CASE először kiértékeli a expression értéket, majd összehasonlítja az eredményt az egyes értékekkel( value_1, value_2, …) a WHEN záradékokban egymás után, amíg meg nem találja az egyezést.

ha a expression eredménye megegyezik egy értékkel (value1, value2 stb.) egy WHEN záradékban a CASE a THEN záradék megfelelő eredményét adja vissza.

ha a CASE nem talál egyezést, akkor a else_result értéket adja vissza, amely a ELSE értéket követi, vagy NULL értéket, ha a ELSE nem érhető el.

A) egyszerű PostgreSQL ESET kifejezés példa

a következő utasítás a CASE kifejezést használja a minősítési leírás hozzáadásához a kimenethez:

Code language: PHP (php)

ebben a példában egy egyszerű CASE kifejezést használtunk a film táblázat értékelésének összehasonlításához néhány szó szerinti értékkel, például G, PG, NC17, PG-13, és visszaadjuk a megfelelő értékelés leírását.

B) egyszerű PostgreSQL ESET kifejezés használata összesített függvény példával

a következő utasítás a CASE kifejezést használja a SUM funkcióval az egyes minősítésekben szereplő filmek számának kiszámításához:

Code language: PHP (php)

ebben az oktatóanyagban megtanulta, hogyan kell használni a PostgreSQL CASE kifejezést összetett lekérdezések létrehozásához.

  • hasznos volt ez az oktatóanyag ?
  • igennem

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.