Oletame, et SQL-andmebaasis on tabel Hotell:
Hotell(hotelli_nr, nimi, linn)
Primaarvõti(hotelli_nr)
Ülesandeks oleks leida sama lausega Tallinnas olevate hotellide arv ja Tartus olevate hotellide arv.
PostgreSQL
SELECT Count(*) FILTER (WHERE linn='Tallinn') AS tallinna_hotellide_arv,Count(*) FILTER (WHERE linn='Tartu') AS tartu_hotellide_arvFROM Hotell;Alternatiivsed lahendused põhinevad Count funktsiooni omadusel, et Count(<avaldis>) loendab vaid ridu, kus avaldise arvutamise tulemus ei ole NULL.
MS Access
SELECT Count(iif(linn='Tallinn',linn,NULL)) AS tallinna_hotellide_arv,Count(iif(linn='Tartu',linn,NULL)) AS tartu_hotellide_arvFROM Hotell;iif funktsioonil on kolm parameetrit -
- esimese oodatav väärtus on kontrollitav tingimus,
- teise oodatav väärtus on funktsiooni tulemus, kui tingimuse kontrolli tulemus on TRUE,
- kolmanda oodatav väärtus on funktsiooni tulemus, kui tingimuse kontrolli tulemus on FALSE.
SELECT Count(CASE WHEN linn='Tallinn' THEN linn ELSE NULL END) AS tallinna_hotellide_arv,Count(CASE WHEN linn='Tartu' THEN linn ELSE NULL END) AS tartu_hotellide_arvFROM Hotell;Kasutatakse CASE avaldist.