SQL WHEN CASE: En komplet vejledning

Sidste ændring: 20 oktober 2025
Forfatter: TecnoDigital
SQL NÅR CASE

SQL, eller Structured Query Language, er et effektivt værktøj til at administrere og manipulere relationelle databaser. En af SQLs mest værdifulde funktioner er dets evne til at håndtere betingede sætninger. Betingede sætninger giver dig mulighed for at angive forskellige handlinger baseret på specifikke betingelser, hvilket giver fleksibilitet og kontrol i dine forespørgsler. Blandt de forskellige betingede sætninger i SQL skiller WHEN CASE-sætningen sig ud som et alsidigt og effektivt værktøj . Den giver dig mulighed for at udføre betinget logik i en forespørgsel, hvilket gør den til en uvurderlig ressource i dit SQL-værktøjssæt.

SQL WHEN CASE: Udforskning af det grundlæggende

For at forstå det fulde potentiale af SQL WHEN CASE-sætningen er det vigtigt at forstå dens grundlæggende syntaks og funktionalitet. SQL WHEN CASE-sætningen bruges primært til at udføre betingede evalueringer og returnere specifikke resultater baseret på de opfyldte betingelser. Lad os tage et kig på den grundlæggende struktur af SQL WHEN CASE-sætningen:

SELECT columna1,
       columna2,
       (CASE
           WHEN condicion1 THEN resultado1
           WHEN condicion2 THEN resultado2
           ELSE resultado
        END) AS alias
FROM nombre_tabla;

I ovenstående syntaks, columna1 y columna2 repræsentere de kolonner, du ønsker at hente fra den angivne tabel. Nøgleordet CASE starter den betingede evaluering, efterfulgt af en række betingelser WHEN og deres tilsvarende resultater. Klausulen ELSE giver et standardresultat, hvis ingen af ​​betingelserne er opfyldt. Til sidst nøgleordet END afslutter den betingede dom. Evalueringsresultatet tildeles et alias for nem reference.

Går dybere ind i SQL WHEN CASE

Nu hvor vi har dækket den grundlæggende struktur af SQL WHEN CASE-sætningen, lad os undersøge dens forskellige aspekter mere detaljeret. Ved at dykke ned i dets applikationer, variationer og bedste praksis kan vi udnytte det fulde potentiale i denne kraftfulde betingede erklæring.

1. SQL WHEN CASE til simple betingede evalueringer

Den enkleste use case for SQL WHEN CASE-sætningen er at udføre en direkte betinget evaluering. Ved at specificere betingelser og tilsvarende resultater kan du effektivt kontrollere resultatet af dine forespørgsler. Overvej følgende eksempel:

SELECT id_pedido,
       fecha_pedido,
       (CASE
           WHEN monto_total > 1000 THEN 'Pedido de alto valor'
           ELSE 'Pedido estándar'
        END) AS categoria_pedido
FROM pedidos;

I dette eksempel henter vi kolonnerne id_pedido y fecha_pedido fra bordet pedidos. Sætningen CASE vurdere kolonnen monto_total, tildeling af værdien 'High Value Order', hvis det samlede beløb overstiger 1000, og 'Standard Order' ellers. Resultatet vises med aliaset categoria_pedido.

2. Brug af SQL WHEN CASE med aggregerede funktioner

SQL WHEN CASE-sætningen kan også bruges sammen med aggregerede funktioner til at udføre betingede beregninger. Dette giver dig mulighed for dynamisk at beregne værdier baseret på specifikke forhold. Overvej følgende scenarie:

  Databasernes historie: En komplet vejledning

Du har et bord, der hedder empleados med søjlerne id_empleado, nombre, apellido y salario. Du ønsker at beregne den gennemsnitlige løn for medarbejdere, men eksklusive lønninger under en bestemt grænse. Sådan kan du opnå dette ved hjælp af SQL WHEN CASE-sætningen:

SELECT (CASE
           WHEN salario > 50000 THEN salario
           ELSE NULL
        END) AS salario_filtrado,
       AVG(salario) AS salario_promedio
FROM empleados;

I dette eksempel er erklæringen CASE vurdere kolonnen salario, tildeling af lønnens værdi, hvis den overstiger 50000 og NULL ellers. Funktionen AVG bruges til at beregne gennemsnitslønnen, eksklusive filtrerede lønninger. Dette giver dig større kontrol over dine aggregeringsberegninger, så du kan filtrere uønskede data fra.

3. Håndtering af flere forhold med SQL WHEN CASE

I nogle tilfælde skal du muligvis evaluere flere betingelser inden for en enkelt SQL WHEN CASE-sætning. Heldigvis giver SQL en enkel måde at håndtere sådanne scenarier på. Ved at kombinere flere forhold WHEN og deres tilsvarende resultater, kan du oprette komplekse betingede evalueringer. Overvej følgende eksempel:

SELECT nombre_producto,
       precio_unitario,
       (CASE
           WHEN precio_unitario > 50 THEN 'Costoso'
           WHEN precio_unitario > 20 THEN 'Moderado'
           ELSE 'Accesible'
        END) AS categoria_precio
FROM productos;

I dette eksempel er erklæringen CASE vurdere kolonnen precio_unitario og tildeler den tilsvarende priskategori i afhængig af forholdene opfyldt. Ved at strukturere dine forhold effektivt kan du håndtere forskellige scenarier og kategorisere dine data derefter.

4. SQL WHEN CASE i JOIN-operationer

SQL WHEN CASE-sætningen kan også bruges i JOIN-operationer, hvilket giver dig mulighed for betinget at join-joinere tabeller baseret på specifikke kriterier. Dette muliggør mere dynamisk og fleksibel datahentning. Overvej følgende scenarie:

  Oprettelse af funktioner i MySQL: En komplet guide

Du har to tavler, clientes y pedidos, med en fælles søjle id_cliente. Du ønsker at hente kundeoplysninger sammen med status for de tilsvarende ordrer. Sådan kan du opnå dette ved hjælp af SQL WHEN CASE-sætningen:

SELECT c.id_cliente,
       c.nombre_cliente,
       p.estado_pedido
FROM clientes c
JOIN pedidos p ON c.id_cliente = p.id_cliente
WHERE (CASE
           WHEN p.estado_pedido = 'Enviado' THEN 1
           ELSE 0
        END) = 1;

I dette eksempel er erklæringen CASE Det bruges inden for klausul WHERE at filtrere betinget bordene sat sammen. Kun rækker med ordrestatus 'Afsendt' returneres, hvilket giver dig et mere specifikt og relevant sæt resultater.

SQL WHEN CASE FAQ

  1. Hvad er formålet med SQL WHEN CASE-sætningen? Det bruges til at udføre betingede evalueringer og returnere specifikke resultater baseret på de opfyldte betingelser. Giver fleksibilitet og kontrol i dine SQL-forespørgsler, så du kan håndtere forskellige scenarier effektivt.
  2. Kan jeg bruge flere WHEN-betingelser i en enkelt SQL WHEN CASE-sætning? Ja, du kan bruge flere betingelser WHEN i en enkelt SQL WHEN CASE-sætning. Ved at kombinere flere betingelser og deres tilsvarende resultater kan du skabe komplekse betingede evalueringer.
  3. Er ELSE-sætning obligatorisk i SQL WHEN CASE-sætning? Nej, ELSE-sætningen er ikke obligatorisk i SQL WHEN CASE-sætningen. Det anbefales dog at inkludere en ELSE-klausul for at give et standardresultat, hvis ingen af ​​betingelserne er opfyldt.
  4. Kan jeg bruge SQL WHEN CASE-sætningen med aggregerede funktioner? Ja, du kan bruge SQL WHEN CASE-sætningen med aggregeringsfunktioner til at udføre betingede beregninger. Dette giver dig mulighed for dynamisk at beregne værdier baseret på specifikke forhold.
  5. Er SQL WHEN CASE-sætningen kun anvendelig i SELECT-sætninger? Nej, SQL WHEN CASE-sætningen kan bruges i forskellige dele af en SQL-forespørgsel, herunder SELECT, WHERE-sætninger og JOIN-operationer. Det giver dig fleksibiliteten til at kontrollere betinget forskellige aspekter af dine forespørgsler.
  6. Er der nogen præstationsovervejelser, når du bruger SQL WHEN CASE-sætningen? Selvom denne erklæring er et kraftfuldt værktøj, er det vigtigt at overveje dens indvirkning på forespørgselsydeevne. Som med enhver betinget erklæring kan overdrevne eller komplekse evalueringer påvirke forespørgselsudførelsestiden. Det anbefales at prøve og optimer dine forespørgsler for optimal ydeevne.
  In-Memory Databaser: Hvordan de fungerer og deres fordele

Konklusion

SQL WHEN CASE-sætningen er et vigtigt værktøj i SQL-udviklerens arsenal. Med dens evne til at udføre betingede evalueringer og returnere specifikke resultater, giver den dig mulighed for at håndtere forskellige scenarier med lethed og nøjagtighed. Ved at mestre kunsten at bruge betingede sætninger i SQL kan du forbedre dine databasehåndteringsevner og åbne op for nye muligheder inden for datamanipulation.