次の方法で共有


UNISTR (Transact-SQL)

適用対象: Azure SQL Database

UNISTR では、文字列内の文字の Unicode エンコード値を指定できるため、Unicode 文字列リテラルがサポートされます。 UNISTR は、入力式の Unicode 標準で定義されている Unicode 文字を返します。

Unicode 文字のエスケープ シーケンスは、 \xxxx または \+xxxxxxの形式で指定できます。ここで、 xxxx は有効な UTF-16 コードポイント値であり、 xxxxxx は有効な Unicode コードポイント値です。 Unicode コード ポイントの値は、 Unicode コード チャートで検索できます。

Transact-SQL 構文表記規則

構文

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

引数

'character_expression'

charncharvarcharnvarchar など、任意の文字型の式char および varchar データ型の場合、照合順序は有効な UTF-8 照合順序である必要があります。

N'unicode_escape_character'

ユーザー定義 Unicode エスケープ シーケンスを表す 1 文字。 指定しない場合、既定値は \

戻り値の型

長さと型が入力型に依存する文字列値。

A. UNISTR と NCHAR 関数を使用する

次の例では、すべて UNISTR 関数を使用して、Unicode 値を文字列文字セットに必要な変換を実行し、Unicode 文字の「口を開いた笑顔」を表示します。 データベースの照合順序は、入力が char または varchar データ型の場合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ÀƁƇ