sql >> Databáze >  >> RDS >> Sqlserver

Jak funguje funkce CHAR() na serveru SQL Server (T-SQL)

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] |
+--------+-----------------------+

  1. Nelze zkompilovat GI 12.1.0.2 a Segmentation Fault

  2. Importujte 'xml' do SQL Serveru

  3. SQL injekce v ADOdb a obecné zabezpečení webu

  4. Filtrování protokolů výstrah v EM13c