UNICODE (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии) ДаБаза данных SQL Azure ДаУправляемый экземпляр SQL Azure даAzure Synapse Analytics даПараллельное хранилище данных

Возвращает целочисленное значение, соответствующее стандарту Юникод, для первого символа входного выражения.

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

UNICODE ( 'ncharacter_expression' )  

Примечание

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

' ncharacter_expression '
Выражение nchar или nvarchar.

Типы возвращаемых данных

int

Remarks

В версиях SQL Server, предшествовавших SQL Server 2012 (11.x), и в База данных SQL Azure функция UNICODE возвращала кодовую точку UCS-2 в диапазоне от 0 до 0xFFFF, который может представлять 65 535 символов в основном многоязычном поле (BMP) Юникода. Начиная с версии SQL Server 2012 (11.x) при использовании параметров сортировки с поддержкой дополнительных символов Юникод возвращает кодовую точку UTF-16 в диапазоне от 000000 до 10FFFF. Дополнительные сведения о поддержке Юникода в Компонент Database Engine см. в статье Поддержка параметров сортировки и Юникода.

Примеры

A. Использование функций UNICODE и NCHAR

В следующем примере функции UNICODE и NCHAR используются для вывода значения UNICODE для первого символа 24-значной строки Åkergatan, а также для вывода самого этого символа, Å.

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

Результирующий набор:

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

Б. Использование функций SUBSTRING, UNICODE и CONVERT

В следующем примере функции SUBSTRING, UNICODE и CONVERT используются для вывода номера символа, символа в формате Юникод, а также значения UNICODE каждого из символов строки Å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; 

Результирующий набор:

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  

См. также

ASCII (Transact-SQL)
CHAR (Transact-SQL)
NCHAR (Transact-SQL)
Строковые функции (Transact-SQL)
Поддержка параметров сортировки и Юникода