MS Access - Funkce CHR a CHRW

5. 5. 2014, Vladimír Klaus, přečteno 1676x

MS Access
SQL

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

Funkce CHR a CHRW, (1)

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

Funkce CHR a CHRW, (2)

V jiných databázích

Místo funkce CHR se může používat CHAR.