Procvičování: ceník
Pixel Shop předělává svůj ceník a vy máte všechno, co k tomu potřebujete. Ceník je dobrá zkouška této lekce: skoro každý sloupec v něm je vypočtený.
Funkce se dají vkládat do sebe, a stejně tak všechno ostatní, co jste se naučili: funkce může být argumentem jiné funkce, výpočet může být uvnitř funkce a funkce může být v podmínce CASE. Iniciály každého zákazníka jsou třeba první písmeno jména a první písmeno za mezerou:
SELECT jmeno,
SUBSTR(jmeno, 1, 1) || SUBSTR(jmeno, INSTR(jmeno, ' ') + 1, 1) AS inicialy
FROM zakaznici
LIMIT 3;| jmeno | inicialy |
|---|---|
| Eva Novotná | EN |
| Jakub Dvořák | JD |
| Tereza Svobodová | TS |
Pár rad pro takové dotazy:
- Dlouhý sloupec stavějte postupně. Napište nejdřív nejvnitřnější část, třeba
INSTR(jmeno, ' '), spusťte ji, zkontrolujte výsledek a teprve pak ji obalte další funkcí. - Počítejte závorky. Každá funkce jednu otevře a každou je potřeba zavřít;
incomplete inputnebo chyba v zápisu často znamená, že nějaká chybí. - Myslete na celočíselné dělení a na
NULL: potřebuje výpočet.0? Může být sloupecNULLa co má pak být výsledkem? - Každý vypočtený sloupec pojmenujte pomocí
AS.
Jak psát:
Pokyny
Ceník na webu ukazuje u každé hry štítek. Ukažte název, cenu a stitek: předprodej u her, které ještě nevyšly, novinka u her vydaných v roce 2025 a skladem u ostatních. Hry seřaďte podle ceny od nejvyšší, hry se stejnou cenou podle názvu:
| nazev | cena | stitek |
|---|---|---|
| Knight's Oath | 1599 | novinka |
| Goal Rush | 1299 | novinka |
| Ice Hockey Pro | 1199 | skladem |
| Dragon Forge | 999 | skladem |
| Robot Rebellion | 999 | předprodej |
| … | … | … |
Hry vydané před rokem 2023 jdou do výprodeje se slevou 25 %. Pod tím ukažte jejich název, cenu a cena_ve_sleve: cenu krát 0.75, zaokrouhlenou na celé koruny a jako celé číslo (599, ne 599.0). Seřaďte je podle data vydání:
| nazev | cena | cena_ve_sleve |
|---|---|---|
| Cube Logic | 129 | 97 |
| Castle Siege | 799 | 599 |
| Ocean Deep | 399 | 299 |
| Lost Temple | 499 | 374 |
| Moon Farm | 499 | 374 |
Na účtenku se vejde 13 znaků názvu hry. Ukažte popisek: názvy, které mají nejvýš 13 znaků, tak, jak jsou, a delší zkrácené na prvních 10 znaků, za kterými následuje ..., tedy dohromady 13 znaků. Potom ukažte cenu. Hry seřaďte podle ceny od nejvyšší, hry se stejnou cenou podle názvu:
| popisek | cena |
|---|---|
| Knight's Oath | 1599 |
| Goal Rush | 1299 |
| Ice Hockey... | 1199 |
| … | … |
Začněte programovat zdarma
10/10