In SQL Server, the T-SQL CHAR()
function converts an int ASCII code to a character value. In other words, you pass in an integer, and the function interprets it as the code value for a string character and returns the corresponding string character.
Syntax
The syntax goes like this:
CHAR ( integer_expression )
Where integer_expression
is an integer from 0 through 255.
If you specify an integer outside this range, the result is NULL
. The same is true if you provide an integer that expresses only the first byte of a double-byte character.
Example 1 – Basic Usage
Here’s an example to demonstrate the basic usage:
SELECT CHAR(67) AS 'Result';
Result:
+----------+ | Result | |----------| | C | +----------+
So if we change the integer, we get a different character:
SELECT CHAR(255) AS 'Result';
Result:
+----------+ | Result | |----------| | ΓΏ | +----------+
Example 2 – Multiple Integers
This function doesn’t support multiple integers as arguments. If you provide multiple integers, you’ll get an error.
Here’s an example:
SELECT CHAR(67, 255) AS 'Result';
Result:
The char function requires 1 argument(s).
Note that this is in contrast to MySQL’s CHAR()
function (which allows you to provide multiple integers).
Example 3 – Out of Range Integers
This function also doesn’t support integers outside the range of 1 to 255. If your argument is outside this range, the result is NULL
.
Here’s an example:
SELECT CHAR(256) AS 'Result';
Result:
+----------+ | Result | |----------| | NULL | +----------+
This is again in contrast to MySQL’s CHAR()
function, which accepts integers larger than 255 (in which case, they’re automatically converted into multiple result bytes).
Example 4 – Inserting Control Characters
Here’s an example of using CHAR(13)
to print subsequent characters on a new line:
SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';
Result:
+--------------+ | Name/Email | |--------------| | Homer [email protected] | +--------------+
Here’s what it looks like if we remove the CHAR(13)
:
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';
Result:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | [email protected] | +--------+-----------------------+