Поделиться через


ASCII (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Возвращает код ASCII первого символа указанного символьного выражения.

Соглашения о синтаксисе Transact-SQL

Синтаксис

ASCII ( character_expression )  

Аргументы

character_expression

Выражение типа char или varchar.

Типы возвращаемых данных

int

Замечания

ASCII — это аббревиатура от American Standard Code for Information Interchange (американский стандартный код для обмена информацией). Это стандарт кодировки символов для современных компьютеров. Список символов ASCII см. в разделе Печатаемые символы спецификации ASCII.

ASCII — это 7-разрядная кодировка. Функция ASCII не поддерживает 8-разрядные наборы символов, такие как расширенный ASCII или High ASCII.

Примеры

А. В этом примере предполагается набор символов ASCII и возвращает значение ASCII для шести символов.

SELECT ASCII('A') AS A, ASCII('B') AS B,   
ASCII('a') AS a, ASCII('b') AS b,  
ASCII(1) AS [1], ASCII(2) AS [2];  

Вот результирующий набор.

A           B           a           b           1           2  
----------- ----------- ----------- ----------- ----------- -----------  
65          66          97          98          49          50  

B. В этом примере показано, как 7-разрядное значение ASCII возвращается правильно, но 8-разрядное значение Расширенного ASCII не обрабатывается.

SELECT ASCII('P') AS [ASCII], ASCII('æ') AS [Extended_ASCII];

Вот результирующий набор.

ASCII       Extended_ASCII
----------- --------------
80          195

Чтобы проверить, сопоставляется ли результаты с правильной точкой кода символа, используйте выходные значения с CHAR помощью или NCHAR функции:

SELECT NCHAR(80) AS [CHARACTER], NCHAR(195) AS [CHARACTER];

Вот результирующий набор.

CHARACTER CHARACTER
--------- ---------
P         Ã

В предыдущем результате обратите внимание, что символ кодовой точки 195 — Ã, а не æ. Это обусловлено тем, что функция ASCII способна считать первый 7-разрядный поток, но не дополнительный бит. Правильную кодовую точку для символа æ можно найти с помощью функции UNICODE, которая способна вернуть правильную символьную кодовую точку.

SELECT UNICODE('æ') AS [Extended_ASCII], NCHAR(230) AS [CHARACTER];

Вот результирующий набор.

Extended_ASCII CHARACTER
-------------- ---------
230            æ