UNICODE (Transact-SQL)
Применимо к: SQL Server Azure SQL Database
Управляемый экземпляр SQL Azure
Azure Synapse Analytics Analytics
Platform 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)
Поддержка параметров сортировки и Юникода