UNISTR (Transact-SQL)

適用於:Azure SQL 資料庫

UNISTR 可讓您在字串中指定字元的 Unicode 編碼值,以提供 Unicode 字串常值的支援。 UNISTR 會傳回輸入表達式的 Unicode 字元,如 Unicode 標準所定義。

Unicode 字元的逸出序列可以用 或 \+xxxxxx的形式\xxxx指定,其中 xxxx 是有效的UTF-16字碼點值,而 xxxxxx 是有效的Unicode字碼點值。 您可以在 Unicode 程式代碼圖表查閱 Unicode 程式代碼點值。

Transact-SQL 語法慣例

Syntax

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

注意

若要檢視 SQL Server 2014 (12.x) 和更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

'character_expression'

任何字元類型的運算式,例如 char、nchar、varchar 或 nvarchar。 針對 charvarchar 數據類型,定序應該是有效的 UTF-8 定序。

N'unicode_escape_character'

單一字元,表示用戶定義的 Unicode 逸出序列。 如果未提供預設值為 \

傳回類型

長度和型別相依於輸入類型的字串值。

範例

A. 使用 UNISTR 與 NCHAR 函式

下列範例全都使用 函 UNISTR 式來執行將 Unicode 值轉換成字元串字元集的必要轉換,以顯示 Unicode 字元笑臉與開放式嘴。 如果輸入是 charvarchar 數據類型,資料庫定序必須是 UTF-8 定序

使用 UNISTRNCHAR

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