NCHAR (Transact-SQL)
Renvoie le caractère Unicode correspondant à un code entier spécifié, tel que défini dans les normes Unicode.
Conventions de la syntaxe de Transact-SQL
Syntaxe
NCHAR ( integer_expression )
Arguments
integer_expression
Nombre entier positif compris entre 0 et 65 535. Si une valeur n'appartenant pas à cet intervalle est spécifiée, la valeur NULL est renvoyée.
Types renvoyés
nchar(1)
Exemples
A. Utilisation de NCHAR et UNICODE
Cet exemple fait appel aux fonctions UNICODE
et NCHAR
pour imprimer la valeur UNICODE
et le caractère Unicode NCHAR
du deuxième caractère de la chaîne de caractères København
de façon à imprimer correctement celui-ci, soit ø
.
DECLARE @nstring nchar(8)
SET @nstring = N'København'
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)))
GO
Voici l'ensemble des résultats.
----------- -
248 ø(1 row(s) affected)
B. Utilisation de SUBSTRING, UNICODE, CONVERT et NCHAR
Cet exemple fait appel aux fonctions SUBSTRING
, UNICODE
, CONVERT
et NCHAR
pour imprimer le nombre de caractères, le caractère Unicode et la valeur UNICODE de chacun des caractères de la chaîne København
.
-- The @position variable holds the position of the character currently
-- being processed. The @nstring variable is the Unicode character
-- string to process.
DECLARE @position int, @nstring nchar(9)
-- Initialize the current position variable to the first character in
-- the string.
SET @position = 1
-- Initialize the character string variable to the string to process.
-- Notice that there is an N before the start of the string. This
-- indicates that the data following the N is Unicode data.
SET @nstring = N'København'
-- Print the character number of the position of the string you are at,
-- the actual Unicode character you are processing, and the UNICODE
-- value for this particular character.
PRINT 'Character #' + ' ' + 'Unicode Character' + ' ' + 'UNICODE Value'
WHILE @position <= DATALENGTH(@nstring)
BEGIN
SELECT @position,
NCHAR(UNICODE(SUBSTRING(@nstring, @position, 1))),
CONVERT(NCHAR(17), SUBSTRING(@nstring, @position, 1)),
UNICODE(SUBSTRING(@nstring, @position, 1))
SELECT @position = @position + 1
END
GO
Voici l'ensemble des résultats.
Character # Unicode Character UNICODE Value
----------- ---- ----------------- -----------
1 K K 75
(1 row(s) affected)
----------- ---- ----------------- -----------
2 ø ø 248
(1 row(s) affected)
----------- ---- ----------------- -----------
3 b b 98
(1 row(s) affected)
----------- ---- ----------------- -----------
4 e e 101
(1 row(s) affected)
----------- ---- ----------------- -----------
5 n n 110
(1 row(s) affected)
----------- ---- ----------------- -----------
6 h h 104
(1 row(s) affected)
----------- ---- ----------------- -----------
7 a a 97
(1 row(s) affected)
----------- ---- ----------------- -----------
8 v v 118
(1 row(s) affected)
----------- ---- ----------------- -----------
9 n n 110
(1 row(s) affected)
----------- ---- ----------------- -----------
10 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
11 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
12 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
13 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
14 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
15 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
16 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
17 NULL NULL
(1 row(s) affected)
----------- ---- ----------------- -----------
18 NULL NULL
(1 row(s) affected)
Voir aussi
Référence
Types de données (Transact-SQL)
Fonctions de chaîne (Transact-SQL)
UNICODE (Transact-SQL)