V SQL Server, T-SQL CHAR()
funkce převede int ASCII kód na hodnotu znaku. Jinými slovy, předáte celé číslo a funkce jej interpretuje jako hodnotu kódu pro znak řetězce a vrátí odpovídající znak řetězce.
Syntaxe
Syntaxe vypadá takto:
CHAR ( integer_expression )
Kde integer_expression
je celé číslo od 0 do 255.
Pokud zadáte celé číslo mimo tento rozsah, výsledkem bude NULL
. Totéž platí, pokud zadáte celé číslo, které vyjadřuje pouze první bajt dvoubajtového znaku.
Příklad 1 – Základní použití
Zde je příklad demonstrující základní použití:
SELECT CHAR(67) AS 'Result';
Výsledek:
+----------+ | Result | |----------| | C | +----------+
Pokud tedy změníme celé číslo, dostaneme jiný znak:
SELECT CHAR(255) AS 'Result';
Výsledek:
+----------+ | Result | |----------| | ÿ | +----------+
Příklad 2 – Více celých čísel
Tato funkce nepodporuje více celých čísel jako argumenty. Pokud zadáte více celých čísel, zobrazí se chyba.
Zde je příklad:
SELECT CHAR(67, 255) AS 'Result';
Výsledek:
The char function requires 1 argument(s).
Všimněte si, že toto je v kontrastu s CHAR()
MySQL funkce (která umožňuje zadat více celých čísel).
Příklad 3 – Celá čísla mimo rozsah
Tato funkce také nepodporuje celá čísla mimo rozsah 1 až 255. Pokud je váš argument mimo tento rozsah, výsledek je NULL
.
Zde je příklad:
SELECT CHAR(256) AS 'Result';
Výsledek:
+----------+ | Result | |----------| | NULL | +----------+
To je opět v kontrastu s CHAR()
MySQL funkce, která přijímá celá čísla větší než 255 (v takovém případě se automaticky převedou na více výsledných bajtů).
Příklad 4 – Vkládání řídicích znaků
Zde je příklad použití CHAR(13)
pro tisk následujících znaků na nový řádek:
SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';
Výsledek:
+--------------+ | Name/Email | |--------------| | Homer [email protected] | +--------------+
Takto to vypadá, když odstraníme CHAR(13)
:
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';
Výsledek:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | [email protected] | +--------+-----------------------+