Seznam hodnot: IN
Když se má sloupec rovnat jedné z několika hodnot, OR se protáhne: zanr = 'RPG' OR zanr = 'Simulace' OR zanr = 'Strategie'. IN (v) řekne totéž stručněji. Za sloupcem následuje IN a seznam hodnot v závorkách, oddělených čárkami:
SELECT nazev, zanr
FROM hry
WHERE zanr IN ('RPG', 'Simulace', 'Strategie')
ORDER BY zanr, nazev;| nazev | zanr |
|---|---|
| Dragon Forge | RPG |
| Knight's Oath | RPG |
| Bakery Story | Simulace |
| Moon Farm | Simulace |
| … | … |
Řádek se dostane do výsledku, když se jeho hodnota rovná kterékoli hodnotě ze seznamu. Na pořadí hodnot nezáleží a seznam může být tak dlouhý, jak potřebujete. Čísla se do seznamu píšou bez apostrofů:
SELECT nazev, vek_od
FROM hry
WHERE vek_od IN (16, 18)
ORDER BY nazev;| nazev | vek_od |
|---|---|
| Dragon Forge | 16 |
| Knight's Oath | 16 |
| Robot Rebellion | 16 |
| Shadow Ninja | 16 |
| Zombie Town | 18 |
NOT IN je opak: najde řádky, jejichž hodnota v seznamu není. Zákazníci, kteří nejsou z Prahy ani z Brna:
SELECT jmeno, mesto
FROM zakaznici
WHERE mesto NOT IN ('Praha', 'Brno')
ORDER BY jmeno;| jmeno | mesto |
|---|---|
| Klára Horáková | Plzeň |
| Lukáš Procházka | Ostrava |
| Martin Zeman | Plzeň |
| Natálie Marková | Ostrava |
| Vojtěch Pokorný | Plzeň |
Anna Kučerová a Filip Beneš ve výsledku nejsou, přestože nejsou z Prahy ani z Brna: jejich město je NULL. Řádky s NULL nenajde IN ani NOT IN. Proč, se dozvíte v posledním cvičení této lekce.
Typická chyba: jedny apostrofy kolem celého seznamu. zanr IN ('RPG, Strategie') není chyba, ale nenajde nic. Seznam má jedinou hodnotu, text RPG, Strategie, a takový žánr nemá žádná hra. Každý text v seznamu potřebuje vlastní apostrofy: ('RPG', 'Strategie').
Jak psát:
Pokyny
Obchod vylosoval výherce soutěže: zákazníky s ID 2, 7 a 11. Ukažte jejich jméno a e-mail, seřazené podle jména:
| jmeno | |
|---|---|
| Adéla Králová | adela.kralova@mail.cz |
| Jakub Dvořák | jakub.d@mail.cz |
| Klára Horáková | klara.horakova@mail.cz |
Pod tím ukažte název a žánr her, které nejsou akční, závodní ani sportovní (žánry Akční, Závodní a Sportovní). Použijte NOT IN a hry seřaďte podle názvu. Výsledek začíná takto:
| nazev | zanr |
|---|---|
| Bakery Story | Simulace |
| Castle Siege | Strategie |
| Cube Logic | Logická |
| … | … |
Začněte programovat zdarma
9/12