Dans SQL Server, le T-SQL CHAR()
la fonction convertit un int code ASCII à une valeur de caractère. En d'autres termes, vous transmettez un entier et la fonction l'interprète comme la valeur de code d'un caractère de chaîne et renvoie le caractère de chaîne correspondant.
Syntaxe
La syntaxe ressemble à ceci :
CHAR ( integer_expression )
Où integer_expression
est un entier compris entre 0 et 255.
Si vous spécifiez un entier en dehors de cette plage, le résultat est NULL
. Il en va de même si vous fournissez un entier qui exprime uniquement le premier octet d'un caractère à deux octets.
Exemple 1 - Utilisation de base
Voici un exemple pour illustrer l'utilisation de base :
SELECT CHAR(67) AS 'Result';
Résultat :
+----------+ | Result | |----------| | C | +----------+
Donc si on change l'entier, on obtient un caractère différent :
SELECT CHAR(255) AS 'Result';
Résultat :
+----------+ | Result | |----------| | ÿ | +----------+
Exemple 2 – Nombres entiers multiples
Cette fonction ne prend pas en charge plusieurs entiers comme arguments. Si vous fournissez plusieurs entiers, vous obtiendrez une erreur.
Voici un exemple :
SELECT CHAR(67, 255) AS 'Result';
Résultat :
The char function requires 1 argument(s).
Notez que cela contraste avec le CHAR()
de MySQL fonction (qui permet de fournir plusieurs entiers).
Exemple 3 - Entiers hors limites
Cette fonction ne prend pas non plus en charge les entiers en dehors de la plage de 1 à 255. Si votre argument est en dehors de cette plage, le résultat est NULL
.
Voici un exemple :
SELECT CHAR(256) AS 'Result';
Résultat :
+----------+ | Result | |----------| | NULL | +----------+
Ceci est encore une fois en contraste avec le CHAR()
de MySQL fonction, qui accepte les entiers supérieurs à 255 (auquel cas, ils sont automatiquement convertis en plusieurs octets de résultat).
Exemple 4 - Insertion de caractères de contrôle
Voici un exemple d'utilisation de CHAR(13)
pour imprimer les caractères suivants sur une nouvelle ligne :
SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';
Résultat :
+--------------+ | Name/Email | |--------------| | Homer [email protected] | +--------------+
Voici à quoi cela ressemble si nous supprimons le CHAR(13)
:
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';
Résultat :
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | [email protected] | +--------+-----------------------+