Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do
Azure
Instância Gerenciada de SQL do Azure
Azure Synapse Analytics
Analytics Platform System (PDW)
Banco de Dados SQL no Microsoft Fabric
Devolve o carácter Unicode com o código inteiro especificado, conforme definido pelo padrão Unicode.
Transact-SQL convenções de sintaxe
Sintaxe
NCHAR ( integer_expression )
Arguments
integer_expression
Quando a colação da base de dados não contém a bandeira de Carácter Suplementar (SC ), trata-se de um inteiro positivo de 0 a 65535 (de 0 a 0xFFFF). Se for especificado um valor fora deste intervalo, NULL é devolvido. Para mais informações sobre caracteres suplementares, consulte Collation and Unicode Support.
Quando a colação da base de dados suporta a bandeira SC, trata-se de um inteiro positivo de 0 a 1114111 (0 a 0x10FFFF). Se for especificado um valor fora deste intervalo, NULL é devolvido.
Tipos de devolução
nchar(1) quando a colação padrão da base de dados não suporta caracteres suplementares.
nvarchar(2) quando a colação padrão da base de dados suporta caracteres suplementares.
Se o parâmetro integer_expression estiver no intervalo 0 - 0xFFFF, apenas um carácter é devolvido. Para valores superiores, o NCHAR devolve o par substituto correspondente. Não construa um par de substitutos usando NCHAR(<High surrogate>) + NCHAR(\<Low Surrogate>). Em vez disso, use uma colação de base de dados que suporte caracteres suplementares e depois especifique o ponto de código Unicode para o par substituto. O exemplo seguinte demonstra tanto o método antigo de construir um par de substituto como o método preferido para especificar o ponto de código Unicode.
CREATE DATABASE test COLLATE Finnish_Swedish_100_CS_AS_SC;
DECLARE @d NVARCHAR(10) = N'𣅿';
-- Old style method.
SELECT NCHAR(0xD84C) + NCHAR(0xDD7F);
-- Preferred method.
SELECT NCHAR(143743);
-- Alternative preferred method.
SELECT NCHAR(UNICODE(@d));
Examples
A. Utilização do NCHAR e UNICODE
O exemplo seguinte usa as UNICODE funções e NCHAR para imprimir o UNICODE valor e o NCHAR (carácter Unicode) do segundo carácter da København cadeia de caracteres, e para imprimir o segundo carácter real, ø.
DECLARE @nstring NCHAR(8);
SET @nstring = N'København';
SELECT UNICODE(SUBSTRING(@nstring, 2, 1)),
NCHAR(UNICODE(SUBSTRING(@nstring, 2, 1)));
GO
Aqui está o conjunto de resultados.
----------- -
248 ø
(1 row(s) affected)
B. Usando SUBSTRING, UNICODE, CONVERT e NCHAR
O exemplo seguinte usa as SUBSTRINGfunções , UNICODE, CONVERT, e NCHAR para imprimir o número de caracteres, o carácter Unicode e o valor UNICODE de cada carácter na cadeia 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
Aqui está o conjunto de resultados.
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)
Ver também
ASCII (Transact-SQL)
CHAR (Transact-SQL)
UNICODE (Transact-SQL)
Tipos de dados (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)