Caz PostgreSQL

rezumat: în acest tutorial, veți învăța cum să utilizați expresia condiționată de caz PostgreSQL pentru a forma interogări condiționale.

expresia PostgreSQL CASE este aceeași cu declarația IF/ELSE din alte limbaje de programare. Vă permite să adăugați logica if-else la interogare pentru a forma o interogare puternică.

deoarece CASE este o expresie, o puteți folosi în orice loc în care o expresie poate fi utilizată, de ex.,SELECT, WHERE, GROUP BY, și HAVING clauză.

expresia CASE are două forme: forma generală și cea simplă.

1) General PostgreSQL Expresie caz

următoarele ilustrează forma generală a CASE declarație:

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

în această sintaxă, fiecare condiție (condition_1, condition_2…) este o expresie booleană care returnează fie true, fie false.

când o condiție se evaluează la false, expresia CASEevaluează următoarea condiție de sus în jos până când găsește o condiție care se evaluează la true.

dacă o condiție se evaluează la true, expresia CASE returnează rezultatul corespunzător care urmează condiției. De exemplu, dacă condition_2 se evaluează la true, expresia CASEreturnează result_2. De asemenea, se oprește imediat evaluarea următoarei expresii.

în cazul în care toate condițiile se evaluează la false, expresia CASE returnează rezultatul (else_result) care urmează cuvântului cheie ELSE. Dacă omiteți clauza ELSE, expresia CASE returnează NULL.

să aruncăm o privire la tabelul film din Baza de date eșantion.

A) un exemplu de caz general

să presupunem că doriți să etichetați filmele după lungimea lor pe baza următoarei logici:

  • dacă lungimea este mai mică de 50 de minute, filmul este scurt.
  • dacă lungimea este mai mare de 50 de minute și mai mică sau egală cu 120 de minute, filmul este mediu.
  • dacă lungimea este mai mare de 120 de minute, filmul este lung.

pentru a aplica această logică, puteți utiliza expresia CASE din Instrucțiunea SELECT după cum urmează:

Code language: PHP (php)

ieșire:

rețineți că am plasat un alias de coloană duration după expresia CASE.

B) utilizarea cazului cu un exemplu de funcție agregată

să presupunem că doriți să atribuiți segmente de preț filmelor cu următoarea logică:

  • dacă rata de închiriere este de 0,99, filmul este economic.
  • dacă rata de închiriere este de 1,99, filmul este în masă.
  • dacă rata de închiriere este de 4,99, filmul este premium.

și doriți să știți numărul de filme care aparțin economiei, masei și premium.

în acest caz, puteți utiliza expresia CASE pentru a construi interogarea după cum urmează:

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

rezultatul interogării este următorul:

în acest exemplu, am folosit expresia CASE pentru a returna 1 sau 0 dacă rata de închiriere se încadrează în fiecare segment de preț. Și am aplicat funcția SUM pentru a calcula totalul filmelor pentru fiecare segment de preț.

2) expresie simplă de caz PostgreSQL

PostgreSQL oferă o altă formă a expresiei CASE numită formă simplă după cum urmează:

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

CASE evaluează mai întâi expression și compară rezultatul cu fiecare valoare( value_1, value_2, …) în clauzele WHEN secvențial până când găsește potrivirea.

odată ce rezultatul expression este egal cu o valoare (valoare1, valoare2, etc.) într-o clauză WHEN, CASE returnează rezultatul corespunzător în clauza THEN.

dacă CASE nu găsește nicio potrivire, returnează else_result în care urmează valoarea ELSE sau NULL dacă ELSE nu este disponibil.

A) exemplu simplu de expresie a cazului PostgreSQL

următoarea instrucțiune folosește expresia CASE pentru a adăuga descrierea evaluării la ieșire:

Code language: PHP (php)

în acest exemplu, am folosit o expresie simplă CASE pentru a compara evaluarea din tabelul film cu unele valori literale precum G, PG, NC17, PG-13 și pentru a returna descrierea evaluării corespunzătoare.

B) utilizarea expresiei de caz PostgreSQL simple cu exemplu de funcție agregată

următoarea instrucțiune folosește expresia CASE cu funcția SUM pentru a calcula numărul de filme din fiecare evaluare:

Code language: PHP (php)

în acest tutorial, ați învățat cum să utilizați expresia PostgreSQL CASE pentru a forma interogări complexe.

  • a fost util acest tutorial ?
  • nu

Lasă un răspuns

Adresa ta de email nu va fi publicată.