UNISTR (Transact-SQL)
适用于:Azure SQL 数据库
UNISTR
通过允许你在字符串中指定字符的 Unicode 编码值,提供对 Unicode 字符串文本的支持。 UNISTR
返回输入表达式的 Unicode 字符(由 Unicode 标准定义)。
Unicode 字符的转义序列可以采用或有效 xxxx
UTF-16 代码点值的形式\xxxx
\+xxxxxx
指定,并且xxxxxx
是有效的 Unicode 代码点值。 可以在 Unicode 代码图表中查找 Unicode 代码点值。
语法
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
参数
“character_expression”
任何字符类型的表达式,例如 char、nchar、varchar 或 nvarchar。 对于 char 和 varchar 数据类型,排序规则应该是有效的 UTF-8 排序规则。
N'unicode_escape_character'
表示用户定义的 Unicode 转义序列的单个字符。 如果未提供,则默认值为 \
。
返回类型
长度和类型的字符串值取决于输入类型。
示例
A. 使用 UNISTR 与 NCHAR 函数
以下示例都使用 UNISTR
函数将 Unicode 值转换为字符串字符集的必要转换,以显示 Unicode 字符笑脸与打开的口角。 如果输入为 char 或 varchar 数据类型,则数据库排序规则必须是 UTF-8 排序规则。
使用 UNISTR
和 NCHAR
:
SELECT N'Hello! ' + NCHAR(0xd83d) + NCHAR(0xde00);
此示例也可以编写:
SELECT UNISTR(N'Hello! \D83D\DE00');
SELECT UNISTR(N'Hello! \+01F603');
结果集如下。
-----------
Hello! 😃
B. 将 UNISTR 函数与用户定义的转义字符配合使用
以下示例使用 UNISTR
具有自定义转义字符的函数来执行将 Unicode 转换为字符串字符集的必要转换。
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
结果集如下。
-----------
ABCÀƁƇ