UNISTR (Transact-SQL)
適用対象: Azure SQL Database
UNISTR
では、文字列内の文字の Unicode エンコード値を指定できるため、Unicode 文字列リテラルがサポートされます。 UNISTR
は、入力式の Unicode 標準で定義されている Unicode 文字を返します。
Unicode 文字のエスケープ シーケンスは、 \xxxx
または \+xxxxxx
の形式で指定できます。ここで、 xxxx
は有効な UTF-16 コードポイント値であり、 xxxxxx
は有効な Unicode コードポイント値です。 Unicode コード ポイントの値は、 Unicode コード チャートで検索できます。
構文
UNISTR ( 'character_expression' [ , 'unicode_escape_character' ] )
Note
SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。
引数
'character_expression'
char、nchar、varchar、nvarchar など、任意の文字型の式。 char および varchar データ型の場合、照合順序は有効な UTF-8 照合順序である必要があります。
N'unicode_escape_character'
ユーザー定義 Unicode エスケープ シーケンスを表す 1 文字。 指定しない場合、既定値は \
。
戻り値の型
長さと型が入力型に依存する文字列値。
例
A. UNISTR と NCHAR 関数を使用する
次の例では、すべて UNISTR
関数を使用して、Unicode 値を文字列文字セットに必要な変換を実行し、Unicode 文字の「口を開いた笑顔」を表示します。 データベースの照合順序は、入力が 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 関数を使用する
次の例では、カスタムエスケープ文字を持つ UNISTR
関数を使用して、Unicode を文字列文字セットに必要な変換を実行します。
SELECT UNISTR(N'ABC#00C0#0181#0187', '#');
結果セットは次のようになります。
-----------
ABCÀƁƇ