繰り返し符号や長音が同じ文字として取り扱われる

現象

日本語照合順序 (Japanese、Japanese_90、Japanease_XJIS_100、Japanese_Unicode) を使用している場合、繰り返し符号や長音が同じ文字として扱われる場合があります。
この結果、ユーザーは意図しない結果を得る場合があります。

例えば、以下のクエリでは繰り返し符号 ‘ヽ’ と長音‘ー’を ‘々’ と比べ、同一文字であれば☆に変換します。
---------------------------------
SELECT REPLACE('繰り返し記号 ヽ 長音 ー','々','☆') as REPLACE
---------------------------------


上記のクエリの結果は以下の通りです。
‘ヽ’ と ‘ー’ は ‘々’ と異なる文字ですが, 同じ文字として扱われます。
この結果、 ‘ヽ’ と ‘ー’ は ☆に変換されます。
---------------------------------
繰り返し記号 ☆ 長音 ☆
---------------------------------

解決方法

Japanese_BIN を照合順序として使用します。

例えば、 以下のようにCOLLATE 句を使用します。
--------------------------------- 
SELECT REPLACE('繰り返し記号 ヽ 長音 ー','々' COLLATE Japanese_BIN,'☆') as REPLACE;
--------------------------------- 

この結果、以下の結果を得ることが出来ます。
--------------------------------- 
繰り返し記号 ヽ 長音 ー
---------------------------------  
プロパティ

文書番号:3023418 - 最終更新日: 2016/09/30 - リビジョン: 1

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Evaluation Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Compact Edition, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Web

フィードバック