Postgres saksuttrykk

Postgres saksuttrykk
Du må bruke et uttrykk for dine betingede spørsmål i en uttalelse, som kan gjøres ved hjelp av/ ellers uttalelser. Men PostgreSQL støtter ikke hvis/ annet uttalelser, alternativet for IF/ ellers uttalelser i PostgreSQL er å bruke "Case" -uttrykkene. "Case" -uttrykket i PostgreSQL lar deg bruke hvis/ annet utsagn som et betinget uttrykk der du kan utføre spørsmål ved å bruke "når" og "da" i hver "sak" -uttalelse. "Case" -uttrykket kan også brukes med andre uttrykk, for eksempel: "Select", "Have", "Group by" og "Where" -klausuler. I denne artikkelen vil vi få kunnskap om forskjellige former for "sak" -uttalelser og demonstrere forskjellige eksempler på "sak" -uttalelser som bruker "når" og "deretter" saker i eksempler som vil gjøre det mye enklere å forstå.

Former for saksuttrykk:

"Case" -uttrykket består av to former som er:

  1. Enkle "sak" -uttrykksuttalelser.
  2. Generelle/ søkte "sak" -uttrykksuttalelser.

Begge skjemaene definerer et betinget uttrykk i en spørring som vi vil se på i ytterligere eksempler i denne artikkelen.

Enkle "sak" -uttrykksuttalelser i PostgreSQL:

Den første formen for "Case" -uttalelsen Basic Syntax er nevnt nedenfor:

I denne uttalelsen vil "Case" -uttrykket først utføre og evaluere "uttrykket" og differensiere resultatene med "når" -bestemmelsen (Expression1, Expression2 osv.). Hvis den finner kampen, vil "når" -klausulen bli utført.

Hvis det ikke er funnet noen kamper, vil "ellers" -klausulen bli utført med "annet uttalelser" i den. Det er unødvendig å inkludere "ellers" -klausulen i spørringen, ettersom det er valgfritt, men hvis det ikke er noen "andre" klausuler og kampen er fremdeles ikke funnet, vil PostgreSQL gi en unntaksfeil.

For å kjøre spørsmål og for å inkludere betingede uttrykk i uttalelsen din, må vi først lage en prøvebord for å sette "sak" -forhold på den i PostgreSQL. Jeg har generert et bord som et eksempel:

Lag tabell passasjerer_info (
"Id" int primærnøkkel ,
"Navn" Varchar (100) ,
"E -post" varchar (255) unik ,
"Alder" heltall ,
"Travel_to" varchar (255) ,
"Betaling" heltall ,
"Travel_date" -dato
)

Etter å ha satt inn noen verdier i tabellen ovenfor, ser tabellen slik ut:

Når tabellen er opprettet, la oss dykke ned i noen eksempler for enkle postgreSQL “Case” -uttrykk nedenfor:

Enkle eksempler på "Case" -uttrykk:

I tabellen som er opprettet ovenfor, “Passengers_info”, vil vi bruke de enkle “saken” -uttrykkene i uttalelsene. I eksemplet nedenfor har jeg brukt "saken" -uttrykket til å inkludere i hvilken alder tid passasjerene er i; For eksempel vises en person som alderen er '22' som 'i tjueårene' alder og så videre. Nedenfor er demonstrasjonen av dette eksemplet:

Velg "ID", "Navn",
SAK
Når "alder" <30 THEN 'In twenties'
Når "alder" <40 THEN 'In thirties'
Når "alder"> = 40 så "middelaldrende"
END AGE_ERA
Fra "Passengers_info"
Bestilling med "id";

I uttalelsen ovenfor,

  • "Select" -bestemmelsen velger kolonnene som må vises i utgangen.
  • I "tilfelle" -uttrykket sammenlignes tilstanden i "når" -klausulen hvis det er noen passasjerer med alder mindre enn 30, og deretter legg det i resultatene av den passasjeren "i tjueårene" og så videre.
  • "Slutt" -bestemmelsen er å avslutte tilstanden, og 'Age_era' gir navnet til kolonnen i utgangen. Du kan spesifisere alle andre navn deretter.
  • "Fra" -bestemmelsen vil trekke ut dataene fra tabellen som er nevnt.
  • Til slutt er "orden etter" -bestemmelsen valgfritt; Det brukes til å bestille resultatene i økende orden med "ID".

Ovennevnte uttalelse gir følgende utdata på skjermen:

Som vi kan se, vises passasjerene i tjueårene, trettiårene eller middelaldrende tiden henholdsvis med IDS- og navnekolonnen, og kolonnenavnet vi inkluderte i "slutt" -klausulen er også synlig.

Enkelt “Case” -uttrykk med sumfunksjon i PostgreSQL:

Vi kan bruke aggregatfunksjoner som telling, sum, AVG, Min, Max etc. funksjoner i uttalelsene våre også innen "sak" -uttrykk. I eksemplet nedenfor vil vi se hvordan du kan bruke "sum" -funksjon i "Case" -forholdsuttalelser:

PLUKKE UT
SUM
(Sak "Travel_to"
Når 'Paris' så 1
Annet 0
Slutt) "Tavelling Paris",
SUM
(Sak "Travel_to"
Når 'newYork' så 1
Annet 0
Slutt) "Tavelling NewYork",
SUM
(Sak "Travel_to"
Når 'Sydney' så 1
Annet 0
Slutt) "Tavelling Sydney",
SUM
(Sak "Travel_to"
Når 'Hogwarts' så 1
Annet 0
Slutt) "Tavelling Hogwarts",
SUM
(Sak "Travel_to"
Når 'Maldivene' så 1
Annet 0
Slutt) "Tavelling Maldivene",
SUM
(Sak "Travel_to"
Når 'Hellas' så 1
Annet 0
Slutt) "Tavelling Hellas"
Fra "Passengers_info";

Ovennevnte syntaks bruker "sum" -funksjonen for å beregne hvor mange passasjerer som reiser til en bestemt by. Utgangen for følgende syntaks er festet nedenfor:

Dette utgangsresultatet viser antall passasjerer som reiser til hvilken by.

Generelt/ søkte "sak" -uttrykksuttalelser i PostgreSQL:

Følgende syntaks viser den grunnleggende uttalelsen for å skrive generelle eller søkte “sak” -uttrykk i PostgreSQL:

I søkte eller generelle "tilfelle" -uttrykk er forholdene boolske uttrykk, og "Case" -uttrykk er avhengig av disse boolske uttrykkene. "Case" -uttrykket evaluerer hver tilstand i uttalelsen til den 'sanne' tilstanden er grunnlagt. Hvis den finner den sanne tilstanden på et tidspunkt, går den ikke videre til neste uttrykk og returnerer det sanne tilstandsresultatet. Hvis ingen tilstand blir funnet å være sann, utfører den "ellers" klausulen eller returnerer null hvis ingen "annet" tilstand er nevnt.

Generelt "sak" -uttrykk med sumfunksjon i PostgreSQL -eksempel:

I dette eksemplet vil vi dele og beregne passasjerene som reiser i to klasser i.e. Økonomi og forretningsklasse ved å bruke "sum" -funksjon:

PLUKKE UT
SUM
(SAK
Når "betaling" 100000 så 1
Annet 0
SLUTT
) Som "business_class"
Fra Passengers_info;

I uttalelsen ovenfor har vi brukt betingelsen om at passasjerer med betaling på mindre enn 1 LAC -reise til økonomiklasse og større enn 1 LAC vil reise til Business Class. Utgangen vises som:

Konklusjon:

Avslutningsvis har vi lært i denne artikkelen hvordan du bruker "Case" -uttrykk i PostgreSQL. Det er to former for "sak" -uttrykk, og begge kan brukes til å få ønsket resultat. Vi har også utført noen eksempler ved å bruke "sak" med "når" og "deretter" -klausuler i uttalelser for å implementere syntaks for "Case" -uttrykket i PostgreSQL.