ASCII (Transact-SQL)

适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库

返回字符表达式中最左侧的字符的 ASCII 代码值。

Transact-SQL 语法约定

语法

ASCII ( character_expression )  

参数

character_expression
char 或 varchar 类型的表达式

返回类型

int

备注

ASCII 表示美国信息交换标准码。 它是现代计算机的一种字符编码标准。 要获取 ASCII 字符列表,请参阅 ASCII 的“可打印字符”部分

ASCII 是一个 7 位字符集。 扩展的 ASCII(或称 High ASCII)是不由 ASCII 函数处理的 8 位字符集。

示例

A. 此示例假定一个 ASCII 字符集,并返回 6 个字符的 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

若要验证上述结果是否映射到正确的字符码位,请将输出值代入 CHARNCHAR 函数:

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

结果集如下。

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

请注意,在上面的结果中,码位 195 的字符为“Ô,而不是“æ”。 这是因为 ASCII 函数能够读取前 7 位的流,而不包括剩余的 1 位。 UNICODE 函数支持返回正确的字符码位,可以通过使用它来找到字符 æ 的正确码位:

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

结果集如下。

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

另请参阅

CHAR (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)
字符串函数 (Transact-SQL)