ASCII (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
返回字符表达式中最左侧的字符的 ASCII 代码值。
语法
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
若要验证上述结果是否映射到正确的字符码位,请将输出值代入 CHAR
或 NCHAR
函数:
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)