CHAR (Transact-SQL)
Convertit un code ASCII int en un caractère.
S'applique à : SQL Server (SQL Server 2008 via la version actuelle, Base de données SQL Windows Azure (version initiale via la version actuelle. |
Conventions de la syntaxe Transact-SQL
Syntaxe
CHAR ( integer_expression )
Arguments
- integer_expression
Entier compris entre 0 et 255. NULL est retourné si l'expression entière ne se situe pas dans cette plage.
Types de retour
char(1)
Notes
CHAR permet également d'insérer des caractères de contrôle dans une chaîne de caractères. Le tableau suivant répertorie quelques-uns des caractères de contrôle les plus utilisés.
Caractère de contrôle |
Valeur |
---|---|
Tabulation |
char(9) |
Saut de ligne |
char(10) |
Retour chariot |
char(13) |
Exemples
A.Utilisation d'ASCII et CHAR pour imprimer les valeurs ASCII d'une chaîne
L'exemple suivant imprime la valeur et le caractère ASCII de chacun des caractères de la chaîne New Moon.
SET TEXTSIZE 0;
-- Create variables for the character string and for the current
-- position in the string.
DECLARE @position int, @string char(8);
-- Initialize the current position and the string variables.
SET @position = 1;
SET @string = 'New Moon';
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END;
GO
Voici l'ensemble des résultats.
----------- -
78 N
----------- -
101 e
----------- -
119 w
----------- -
32
----------- -
77 M
----------- -
111 o
----------- -
111 o
----------- -
110 n
----------- -
B.Utilisation de CHAR pour l'insertion d'un caractère de contrôle
L'exemple suivant utilise CHAR(13) pour imprimer le nom et l'adresse de messagerie d'un employé sur des lignes distinctes, lorsque les résultats sont retournés sous forme de texte. Cet exemple utilise la base de données AdventureWorks2012.
SELECT p.FirstName + ' ' + p.LastName, + CHAR(13) + pe.EmailAddress
FROM Person.Person p JOIN Person.EmailAddress pe
ON p.BusinessEntityID = pe.BusinessEntityID
AND p.BusinessEntityID = 1;
GO
Voici l'ensemble des résultats.
Ken Sanchez
ken0@adventure-works.com
(1 row(s) affected)