Partilhar via


UNICODE (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

Retorna o valor inteiro, como definido pelo padrão Unicode, para o primeiro caractere da expressão de entrada.

Convenções de sintaxe de Transact-SQL

Sintaxe

UNICODE ( 'ncharacter_expression' )  

Argumentos

' ncharacter_expression '
É uma expressão nchar ou nvarchar.

Tipos de retorno

int

Comentários

Nas versões do SQL Server anteriores a SQL Server 2012 (11.x) e Banco de Dados SQL do Azure, a função UNICODE retorna um ponto de código UCS-2 no intervalo de 000000 a 00FFFF que pode representar os 65.535 caracteres em BMP (Plano Multilíngue Básico) em Unicode. A partir do SQL Server 2012 (11.x), ao usar ordenações habilitadas por Caractere Suplementar (SC), o UNICODE retorna um ponto de código UTF-16 no intervalo de 000000 a 10FFFF. Para saber mais sobre o suporte a Unicode em Mecanismo de Banco de Dados, confira Suporte a ordenações e a Unicode.

Exemplos

a. Usando UNICODE e a função NCHAR

O exemplo a seguir usa as funções UNICODE e NCHAR para imprimir o valor UNICODE do primeiro caractere da cadeia Åkergatan 24 e o primeiro caractere real, Å.

DECLARE @nstring NCHAR(12);  
SET @nstring = N'Åkergatan 24';  
SELECT UNICODE(@nstring), NCHAR(UNICODE(@nstring));  

Veja a seguir o conjunto de resultados.

----------- -   
197         Å  

B. Usando SUBSTRING, UNICODE e CONVERT

O exemplo a seguir usa as funções SUBSTRING, UNICODE e CONVERT para imprimir o número do caractere, o caractere Unicode e o valor UNICODE de cada um dos caracteres na cadeia Åkergatan 24.

-- 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(12);  
-- 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, which   
-- indicates that the data following the N is Unicode data.  
SET @nstring = N'Åkergatan 24';  
-- 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 <= LEN(@nstring)  
-- While these are still characters in the character string,  

BEGIN;  
   SELECT @position AS [position],   
      SUBSTRING(@nstring, @position, 1) AS [character],  
      UNICODE(SUBSTRING(@nstring, @position, 1)) AS [code_point];  
   SET @position = @position + 1;  
END; 

Veja a seguir o conjunto de resultados.

Character # Unicode Character UNICODE Value  
  
----------- ----------------- -----------   
1           Å                 197           
  
----------- ----------------- -----------   
2           k                 107           
  
----------- ----------------- -----------   
3           e                 101           
  
----------- ----------------- -----------   
4           r                 114           
  
----------- ----------------- -----------   
5           g                 103           
  
----------- ----------------- -----------   
6           a                 97            
  
----------- ----------------- -----------   
7           t                 116           
  
----------- ----------------- -----------   
8           a                 97            
  
----------- ----------------- -----------   
9           n                 110           
  
----------- ----------------- -----------   
10                            32            
  
----------- ----------------- -----------   
11          2                 50            
  
----------- ----------------- -----------   
12          4                 52  

Confira também

ASCII (Transact-SQL)
CHAR (Transact-SQL)
NCHAR (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)
Suporte a ordenações e a Unicode