PostgreSQL CASE

samenvatting: in deze tutorial leert u hoe u de PostgreSQL CASE voorwaardelijke expressie gebruikt om voorwaardelijke queries te vormen.

de PostgreSQL CASE expressie is hetzelfde als IF/ELSE statement in andere programmeertalen. Hiermee kunt u if-else logica toe te voegen aan de query om een krachtige query te vormen.

omdat CASE een expressie is, kunt u deze gebruiken op alle plaatsen waar een expressie kan worden gebruikt, bijv.,SELECT, WHERE, GROUP BY, en HAVING clausule.

de CASE uitdrukking heeft twee vormen: algemene en eenvoudige vorm.

1) Algemene PostgreSQL GEVALSUITDRUKKING

het volgende illustreert de algemene vorm van de verklaring CASE :

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

In deze syntaxis, elke voorwaarde (condition_1, condition_2…) is een Booleaanse uitdrukking die true of falsegeeft.

wanneer een voorwaarde evalueert tot false, evalueert de expressie CASE de volgende voorwaarde van boven naar beneden totdat een voorwaarde wordt gevonden die evalueert tot true.

als een voorwaarde evalueert tot true, geeft de expressie CASE het corresponderende resultaat terug dat volgt op de voorwaarde. Als de condition_2 bijvoorbeeld evalueert tot true, geeft de expressie CASE de result_2terug. Ook stopt het onmiddellijk met het evalueren van de volgende uitdrukking.

in het geval dat alle voorwaarden evalueren tot false, geeft de expressie CASE het resultaat (else_result) terug dat volgt op het ELSE trefwoord. Als u de ELSE clausule weglaat, geeft de CASE expressie NULLterug.

laten we eens kijken naar de film tabel uit de voorbeelddatabase.

A) een algemeen voorbeeld

stel dat u de films wilt labelen op hun lengte op basis van de volgende logica:

  • als de lengte minder dan 50 minuten bedraagt, is de film kort.
  • als de film langer is dan 50 minuten en minder dan of gelijk is aan 120 minuten, is de film medium.
  • als de film langer is dan 120 minuten, is de film lang.

om deze logica toe te passen, kunt u de CASE uitdrukking in het SELECT statement als volgt gebruiken:

Code language: PHP (php)

uitvoer:

merk op dat we een kolom alias duration na de CASE expressie hebben geplaatst.

B) Gebruik hoofdletters met een geaggregeerde functie voorbeeld

stel dat u prijssegmenten wilt toewijzen aan films met de volgende logica:

  • als de huurprijs 0,99 is, is de film economisch.
  • als de huurprijs 1,99 is, is de film massa.
  • als de huurprijs 4,99 is, is de film premium.

en u wilt weten hoeveel films tot economy, mass en premium behoren.

in dit geval kunt u de CASE expressie gebruiken om de query als volgt te construeren:

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

het resultaat van de query is als volgt:

in dit voorbeeld gebruikten we de CASE uitdrukking om 1 of 0 te retourneren als de huurprijs in elk prijssegment valt. En we hebben de functie SUM toegepast om het totaal van films voor elk prijssegment te berekenen.

2) Simple PostgreSQL CASE expression

PostgreSQL biedt een andere vorm van de CASE expressie genaamd simple form als volgt:

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

de CASE evalueert eerst de expression en vergelijkt het resultaat met elke waarde( value_1, value_2, …) in de WHEN clausules opeenvolgend totdat het de overeenkomst vindt.

zodra het resultaat van de expression gelijk is aan een waarde (waarde1, waarde2, enz.) in een WHEN – clausule geeft CASE het overeenkomstige resultaat terug in de THEN – clausule.

als CASE geen overeenkomsten vindt, geeft het else_result terug in die volgt op ELSE, of NULL waarde als ELSE niet beschikbaar is.

a) Simple PostgreSQL CASE expression voorbeeld

het volgende statement gebruikt de CASE expressie om de ratingbeschrijving aan de uitvoer toe te voegen:

Code language: PHP (php)

In dit voorbeeld hebben we een eenvoudige CASE uitdrukking gebruikt om de rating uit de film tabel te vergelijken met enkele letterlijke waarden zoals G, PG, NC17, PG-13 en de bijbehorende ratingbeschrijving te retourneren.

B) gebruikmakend van eenvoudige PostgreSQL-GEVALUITDRUKKING met geaggregeerde functie voorbeeld

de volgende verklaring gebruikt CASE expressie met de SUM functie om het aantal films in elke waardering te berekenen:

Code language: PHP (php)

In deze tutorial heb je geleerd hoe je de PostgreSQL CASE expressie gebruikt om complexe query ‘ s te vormen.

  • was deze tutorial nuttig ?
  • YesNo

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.