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
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. Extended ASCII or High ASCII is an 8-bit character set that is not handled by the ASCII
function.
Examples
A. This example assumes an ASCII character set, and returns the ASCII
value for 6 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 examples 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 above 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 æ
See also
CHAR (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)
String Functions (Transact-SQL)