Rediger

Del via


ASCII (Transact-SQL)

Applies to: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric SQL database in Microsoft Fabric

Returns the ASCII code value of the leftmost character of a character expression.

Transact-SQL syntax conventions

Syntax

ASCII ( character_expression )  

Arguments

character_expression

An expression of type char or varchar.

Return types

int

Remarks

ASCII stands for American Standard Code for Information Interchange. It serves as a character encoding standard for modern computers. See the Printable characters section of ASCII for a list of ASCII characters.

ASCII is a 7-bit character set. The ASCII function does not support an 8-bit character sets like extended ASCII or High ASCII.

Examples

A. This example assumes an ASCII character set, and returns the ASCII value for six characters

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

Here's the result set.

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

B. This example shows how a 7-bit ASCII value is returned correctly, but an 8-bit Extended ASCII value is not handled

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

Here's the result set.

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

To verify if the results map to the correct character code point, use the output values with the CHAR or NCHAR function:

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

Here's the result set.

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

From the previous result, notice that the character for code point 195 is à and not æ. This is because the ASCII function is capable of reading the first 7-bit stream, but not the extra bit. The correct code point for character æ can be found using the UNICODE function, which is capable or returning the correct character code point:

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

Here's the result set.

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