05.05.2014, Vladimír Klaus, navštíveno 3242x
Funkce CHR() vrátí znak z předaného ASCII kódu. Funkce CHRW() vrátí UNICODE znak ze zadaného kódu.
Funkce se může hodit třeba ke generování nějakého kódu pro uživatele, který bude tak trochu vycházet z jeho ID. Tímto dotazem vygenerujeme 4místný textový kód.
SELECT Prijmeni,
CHR(ID*157 MOD 26 + 65) +
CHR(ID*4 MOD 26 + 65) +
CHR(ID*38 MOD 26 + 65) +
CHR(ID*5 MOD 26 + 65) AS Kod
FROM Zakaznici
A jak to tedy funguje? ID se nejprve vynásobí nějaký číslem, aby to bylo více náhodné, a pak se provede celočíselné dělení 26. Tím dostaneme čísla v intervalu 0 – 25. Po přičtení 65 se jedná o čísla v intervalu 65 – 90, což odpovídá znakům A-Z. A to je celé, žádná velká věda.
Funkce se dá ale využít i pro formátovací účely – třeba vložení řádky (Enteru). V tomto případě vložíme mezi příjmení/jméno a ulici dva znaky s kódy 13 a 10, což jsou standardní znaky pro vložení nového řádku.
SELECT Prijmeni & " " & Jmeno & CHR(13) & CHR(10) & Ulice
FROM Zakaznici
V jiných databázích
Místo funkce CHR se může používat CHAR.