Quantcast
Channel: Microsoft SQL Server Japan Support Team Blog
Viewing all articles
Browse latest Browse all 293

日本語照合順序での漢数字 〇 (0x815A) の取り扱いについて

$
0
0

 

皆さん、こんにちは。 SQL Server/Microsoft Azure SQL Database サポートチーム です。

今回は、日本語照合順序での 漢数字 〇 の特殊な取り扱いについて紹介します。

[漢数字 〇 特殊な取り扱い]

漢数字 〇 の文字コードは以下のものになります。

 SJISUTF-16
漢数字 〇0x815A0x3007

 

SQL Server で 日本語照合順序を使用している場合、一部の日本語照合順序 (Japanese、Japanese_90、Japanese_Unicode) では、ソートの重み付けを持つ文字として 漢数字 〇 が登録されていないため、漢数字 〇 を含む文字列で LIKE 検索した場合に、意図しない検索結果が返る場合があります。

具体的に LIKE 検索を実行し、動作を見てみましょう。

SELECT CASE WHEN '12' LIKE '1〇2' 
    THEN
         'TRUE'
    ELSE 'FALSE' END AS 'Check'

// クエリ結果 //

Check
---------------------------------
TRUE

上記のクエリでは、文字列 ”12” を、”1〇2” で LIKE 検索を実施し、LIKE 検索で指定した文字で検索ができた場合に “TRUE” を返すクエリになります。

クエリ結果を見ると、検索対象文字 “12” には、漢数字 〇 は含まれていませんが、LIKE 検索でヒットされます。

 

なお、漢数字 〇 を含む文字列で LIKE 検索を実施したい場合には、明示的に バイナリの照合順序及び SQL Server 2008 以降であれば、Japanese_XJIS_100、Japanese_Bushu_Kakusu_100COLLATE 句 で指定することにより、実現することが可能です。

SELECT CASE WHEN '12' LIKE '1〇2'COLLATE Japanese_BIN
    THEN
        'TRUE'
    ELSE 'FALSE' END AS 'Check'


// クエリ結果 //

Check
---------------------------------
FALSE

[関連情報]

日本語照合順序での長音、繰り返し符号の取り扱いについて

日本語照合順序での 濁音、半濁音 の取り扱いについて

※ 本Blogの内容は、2014年12月 現在の内容となっております


Viewing all articles
Browse latest Browse all 293

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>