UNICODE (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Punto de conexión de análisis SQL en Microsoft Fabric Almacenamiento en Microsoft Fabric
Devuelve el valor entero, según la definición del estándar Unicode, para el primer carácter de la expresión de entrada.
Convenciones de sintaxis de Transact-SQL
Sintaxis
UNICODE ( 'ncharacter_expression' )
Argumentos
' ncharacter_expression '
Es una expresión nchar o nvarchar.
Tipos de valor devuelto
int
Observaciones
En las versiones de SQL Server anteriores a SQL Server 2012 (11.x) y en Azure SQL Database, la función UNICODE devuelve un punto de código UCS-2 en el intervalo de 000000 a 00FFFF que es capaz de representar los 65 535 caracteres en el plano multilingüe básico (BMP) de Unicode. A partir de SQL Server 2012 (11.x), cuando se usan intercalaciones con caracteres complementarios (SC) habilitados, UNICODE devuelve un punto de código UTF 16 en el intervalo de 000000 a 10FFFF. Para obtener más información sobre la compatibilidad con Unicode en Motor de base de datos, consulte Compatibilidad con la intercalación y Unicode.
Ejemplos
A. Utilizar las funciones UNICODE y NCHAR
En el ejemplo siguiente se usan las funciones UNICODE
y NCHAR
para imprimir el valor UNICODE del primer carácter de la cadena Åkergatan 24
e imprimir el primer carácter real (Å
).
DECLARE @nstring NCHAR(12);
SET @nstring = N'Åkergatan 24';
SELECT UNICODE(@nstring), NCHAR(UNICODE(@nstring));
Este es el conjunto de resultados.
----------- -
197 Å
B. Utilizar SUBSTRING, UNICODE y CONVERT
En el ejemplo siguiente se utilizan las funciones SUBSTRING
, UNICODE
y CONVERT
para imprimir el número de carácter, el carácter Unicode y el valor UNICODE de cada uno de los caracteres de la cadena Å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;
Este es el 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
Consulte también
ASCII (Transact-SQL)
CHAR (Transact-SQL)
NCHAR (Transact-SQL)
String Functions (Transact-SQL) [Funciones de cadena (Transact-SQL)]
Compatibilidad con la intercalación y Unicode