PostgreSQL – CASE Expression
PostgreSQL er et populært open-source databasesystem, der tilbyder mange avancerede funktioner og grammatiske strukturer for at sikre fleksibilitet og effektivitet i datastyring og -manipulation. En af de kraftige værktøjer, der er tilgængelige i PostgreSQL, er CASE-udtrykket. Dette udtryk giver en fleksibel måde at behandle data baseret på betingelser og udføre forskellige handlinger afhængigt af resultatet af disse betingelser.
Hvad er et CASE-udtryk?
Et CASE-udtryk er en struktureret måde at evaluere betingelser og udføre handlinger baseret på resultaterne. Det minder om SWITCH-udtrykkene i andre programmeringssprog. I PostgreSQL kan CASE-udtrykket bruges både i SELECT-forespørgsler og i UPDATE- eller INSERT-forespørgsler.
Syntaksen for CASE-udtrykket er som følger:
CASE WHEN betingelse_1 THEN handling_1 WHEN betingelse_2 THEN handling_2 ... ELSE handling_elseEND
Dette udtryk udfører handling_1, hvis betingelse_1 er sand. Hvis betingelse_1 er falsk, men betingelse_2 er sand, udføres handling_2, og så videre. Hvis ingen af betingelserne er sande, udføres handling_else. Hvis handling_else udelades, og ingen af betingelserne er sande, returneres NULL. Udtrykket CASE kan også bruges som en kolonne i SELECT-forespørgsler og kan navngives.
Eksempler på CASE-udtrykket i PostgreSQL
Lad os se på nogle eksempler, der illustrerer brugen af CASE-udtrykket i PostgreSQL.
Eksempel 1
Antag, at du har en tabel med navn employees med kolonnen salary, og du vil klassificere medarbejderne baseret på deres lønniveau. Du kan bruge CASE-udtrykket til at opnå dette som vist nedenfor:
SELECT name, CASE WHEN salary< 50000 THEN Lav løn WHEN salary >= 50000 AND salary<= 80000 THEN Middel løn ELSE Høj løn END AS lønniveauFROM employees;
I dette eksempel evalueres medarbejdernes løn og tildeler dem et lønniveau baseret på deres lønværdi. Hvis lønnen er mindre end 50000, kategoriseres den som Lav løn. Hvis lønnen er mellem 50000 og 80000, kategoriseres den som Middel løn. Ellers kategoriseres den som Høj løn. Det resulterende resultat inkluderer medarbejderens navn og deres tilsvarende lønniveau.
Eksempel 2
I et andet scenario kan du have en tabel med navn students med kolonnerne name, score og grade. Du ønsker at tildele karakterer baseret på elevens score ved hjælp af CASE-udtrykket:
UPDATE studentsSET grade = CASE WHEN score >= 90 THEN A WHEN score >= 80 THEN B WHEN score >= 70 THEN C WHEN score >= 60 THEN D ELSE F END;
I dette eksempel opdateres kolonnen grade i tabellen students baseret på elevens score. Hvis scoren er 90 eller derover, tildeles karakteren A. Hvis scoren er mellem 80 og 89, tildeles karakteren B, og så videre. Hvis ingen af betingelserne er sande, tildeles karakteren F. Efter denne opdatering har hver elev en karakter baseret på deres score.
Konklusion
CASE-udtrykket er et meget nyttigt værktøj i PostgreSQL, der giver dig mulighed for at evaluere betingelser og udføre forskellige handlinger baseret på disse betingelser. Det kan bruges i SELECT-forespørgsler til at oprette tilpassede kolonner eller i UPDATE- og INSERT-forespørgsler til at tildele værdier baseret på betingelser. CASE-udtrykket gør det muligt at manipulere og transformere data på en fleksibel og effektiv måde.
Nu hvor du har fået en dybdegående forståelse af CASE-udtrykket i PostgreSQL, kan du begynde at udnytte dets potentielle i dine egne projekter og forespørgsler. Det kan forbedre din databasehåndtering og give dig mulighed for at udføre komplekse datamanipulationsopgaver med lethed.
Ofte stillede spørgsmål