< SQL

MariaDB - A case operátor

Szerző: Sallai András

Copyright © 2024, Sallai András

Licenc: CC BY-SA 4.0

Web: https://szit.hu

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ó

https://mariadb.com/kb/en/case-operator/ (2024)