UNISTR (Transact-SQL)

Применимо к: База данных SQL Azure

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

Escape-последовательность для символа Юникода может быть указана в виде \xxxx или \+xxxxxx, где xxxx допустимое значение точки кода UTF-16 и xxxxxx является допустимым значением кодовой точки Юникода. Значения точек кода Юникода можно найти в диаграммах кода Юникода.

Соглашения о синтаксисе Transact-SQL

Синтаксис

UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

"character_expression"

Выражение любого типа символа, например char, nchar, varchar или nvarchar. Для типов данных char и varchar параметры сортировки должны быть допустимыми параметрами сортировки UTF-8.

N'unicode_escape_character'

Один символ, представляющий определяемую пользователем последовательность escape-кода Юникода. Если этот параметр не указан, значение по умолчанию равно \.

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

Строковое значение, длина и тип которого зависят от типов входных данных.

Примеры

А. Использование ЮНИСТР и функции NCHAR

В следующих примерах все функции используются UNISTR для выполнения необходимого преобразования значений Юникода в строковый набор символов, чтобы отобразить символ юникода, улыбающийся лицом с открытым ротом. Параметры сортировки базы данных должны быть параметрами сортировки UTF-8, если входные данные являются типами данных char или varchar .

При использовании UNISTR и NCHAR:

SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);

Этот пример также можно записать:

SELECT UNISTR(N'Hello! \D83D\DE00');

SELECT UNISTR(N'Hello! \+01F603');

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

-----------
Hello! 😃

B. Использование функции UNISTR с определяемым пользователем escape-символом

В следующем примере функция используется UNISTR с пользовательским escape-символом для выполнения необходимого преобразования Юникода в строковый набор символов.

SELECT UNISTR(N'ABC#00C0#0181#0187', '#');

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

-----------
ABCÀƁƇ