Felhasználói eszközök

Eszközök a webhelyen


oktatas:adatbazis-kezeles:mariadb:sql:a_case_operator

< SQL

MariaDB - A case operátor

Szintaxis

CASE value WHEN [összehasonlító_érték] THEN eredmény 
[WHEN [összehasonlító_érték] THEN eredmény...] [ELSE eredmény] END
CASE WHEN [feltétel] THEN eredmény 
[WHEN [feltétel] THEN eredmény...] 
[ELSE eredmény] END

Dolgozók példa

select * from employees;
+----+--------------+---------+--------+
| id | name         | city    | salary |
+----+--------------+---------+--------+
|  1 | Para Béla    | Szolnok |    342 |
|  2 | Fele Irén    | Szeged  |    332 |
|  3 | Nora Imre    | Szeged  |    362 |
|  4 | Szal Katalin | Szolnok |    372 |
|  5 | Endő Lajos   | Miskolc |    334 |
|  6 | Tengi Mária  | Szolnok |    329 |
|  7 | Csonka Ernő  | Miskolc |    392 |
+----+--------------+---------+--------+
  • Számoljuk meg a szegedi dolgozókat WHERE direktíva nélkül.
select
    sum(case when city='Szeged' 
         then 1 else 0 end) 
         as 'Szegedi dolgozók száma'
    from employees;

Önmagában nem sok értelme van, hiszen egyszerűbb egy WHERE direktíva használata. Ha viszont, egyszerre szeretném látni hány dolgozó van összesen, és hány van Szegedről:

select
    count(*) as 'Dolgozók száma',
    sum(case when city='Szeged' 
        then 1 else 0 end) 
        as 'Szegedi dolgozók száma'
from employees;

Dokumentáció

oktatas/adatbazis-kezeles/mariadb/sql/a_case_operator.txt · Utolsó módosítás: 2024/10/24 21:32 szerkesztette: admin