Části textu

Často potřebujete jen část textu: rok z data, první písmena jména, doménu z e-mailu. SUBSTR(text, start, delka) (z anglického „substring“, podřetězec) vyřízne delka znaků, počínaje znakem na pozici start. Pozice se počítají od 1:

SELECT SUBSTR('Dragon Forge', 1, 6) AS prvni_slovo, SUBSTR('Dragon Forge', 8) AS zbytek;
prvni_slovozbytek
DragonForge

Bez třetího argumentu pokračuje SUBSTR až do konce textu. A protože data jsou texty, je SUBSTR(vydano, 1, 4) rok, kdy hra vyšla, a SUBSTR(vydano, 6, 2) měsíc.

INSTR(text, cast) najde, kde v textu nějaká část je: vrátí pozici, na které začíná, nebo 0, když ji text neobsahuje. INSTR('eva.novotna@mail.cz', '@') je 12. Spolu se SUBSTR tak můžete text rozříznout u nějakého znaku, ať je kdekoli. Uživatelské jméno v e-mailu je všechno před zavináčem:

SELECT email,
       INSTR(email, '@') AS pozice_zavinace,
       SUBSTR(email, 1, INSTR(email, '@') - 1) AS uzivatel
FROM zakaznici
ORDER BY id
LIMIT 3;
emailpozice_zavinaceuzivatel
eva.novotna@mail.cz12eva.novotna
jakub.d@mail.cz8jakub.d
tereza@svobodovi.cz7tereza

Poslední sloupec čtěte zevnitř ven: INSTR najde zavináč, - 1 se posune o znak zpátky a SUBSTR vezme tolik znaků od začátku.

REPLACE(text, co, cim) nahradí každý výskyt jednoho textu jiným. Pro hashtagy obchod z názvů her odstraní mezery tak, že je nahradí prázdným textem:

SELECT nazev, '#' || REPLACE(nazev, ' ', '') AS hashtag
FROM hry
LIMIT 3;
nazevhashtag
Dragon Forge#DragonForge
Pixel Racer#PixelRacer
Moon Farm#MoonFarm

TRIM(text) odstraní mezery na začátku a na konci textu; LTRIM a RTRIM jen vlevo, nebo jen vpravo. Data obchodu jsou uklizená, ale texty, které lidé píšou do formulářů, často ne, a 'Moon Farm ' se nerovná 'Moon Farm'. Aby byly mezery vidět, dejte kolem textu závorky:

SELECT '[' || '  Moon Farm ' || ']' AS s_mezerami,
       '[' || TRIM('  Moon Farm ') || ']' AS bez_mezer;
s_mezeramibez_mezer
[ Moon Farm ][Moon Farm]

S druhým argumentem odstraní TRIM místo mezer jiné znaky: TRIM('...Páni!!', '.!') je Páni.

Typická chyba: počítání od 0, jako v mnoha programovacích jazycích. SUBSTR(vydano, 0, 4) dá jen tři znaky, třeba 202, protože pozice 0 je ještě před začátkem textu. V SQL je první znak na pozici 1.

Pokyny

Každá hra dostane kód pro sklad: první tři písmena názvu velkými písmeny, pomlčku a své ID, třeba DRA-1. Ukažte kód jako kod a název, seřazené podle ID:

kodnazev
DRA-1Dragon Forge
PIX-2Pixel Racer
MOO-3Moon Farm
……

Pod tím ukažte jméno každého zákazníka a doménu jeho e-mailu, tedy všechno za zavináčem, jako domena. Zákazníky seřaďte podle ID:

jmenodomena
Eva Novotnámail.cz
Jakub Dvořákmail.cz
Tereza Svobodovásvobodovi.cz
……

A pro adresy stránek obchodu ukažte název každé hry a jeho podobu do adresy jako adresa: název malými písmeny, s pomlčkami místo mezer, třeba dragon-forge. Hry seřaďte podle názvu:

nazevadresa
Bakery Storybakery-story
Castle Siegecastle-siege
Cube Logiccube-logic
……

Začněte programovat zdarma

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

4/10