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ÀƁƇ