UNICODE (Transact-SQL)

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

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

Соглашения о синтаксисе 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 для первого символа строки Åkergatan 24, а также для вывода самого этого символа, Å.

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)
Поддержка параметров сортировки и Юникода