NCHAR (Transact-SQL)
Renvoie le caractère Unicode correspondant à un code entier spécifié, tel que défini dans les normes Unicode.
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