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 )
Note
To view Transact-SQL syntax for SQL Server 2014 (12.x) and earlier versions, see Previous versions documentation.
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 is 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 is 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 is 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 is the result set.
Extended_ASCII CHARACTER
-------------- ---------
230 æ
See also
CHAR (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)
String Functions (Transact-SQL)