データに Unicode と html の両方のエンティティ形式の特殊文字を含むデータベース データがあります。結果のリストをアルファベット順に並べ替える必要がありますが、一部の Unicode データと html エンティティはアルファベット順を台無しにします (つまり、コードが A の後に来るアクセント付きの E の場合、 が A の前に来ます)。
現在、DBで使用される特殊文字のセットが限られているという印象を受けていたため、ネストされたreplaceステートメントを使用して「ソート」列を生成しています。
クライアントは、安全を期して、このページhttp://webdesign.about.com/library/bl_htmlcodes.htmのすべての文字を、ソートする前に同等の英語に変換したいと考えています...
現在のコード:
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(
Replace(@Word, 'À', 'A')
, 'Â', 'A')
, 'Ä', 'A')
, 'Ç', 'C')
, 'É', 'E')
, 'È', 'E')
, 'È', 'E')
, 'Ê', 'E')
, 'Î', 'I')
, 'ï', 'i')
, 'Ø', 'O')
, 'Ő', 'o')
, 'Á', 'A')
, 'Ñ', 'N')
, 'í', 'I')
, 'Ó', 'O')
, 'Ń', 'N')
, 'Č', 'C')
, 'á', 'A')
, 'ő', 'O')
, 'ő', 'o')
, 'ö', 'o')
私は、このコードが非常に非効率的であることを認識しています。最初は数文字しかなく、その後徐々に追加されました。
上記のリンク先のページにあるすべての組み合わせを循環させる最善の方法は何ですか?
さらに良いことに、Unicode 値がアルファベット順に正しくソートされているかどうかを誰かが確認できますか? もしそうなら、この列の HTML エンティティ (フレンドリ、数値、および 16 進バージョン) を Unicode に変換するための組み込み済みの SQL Server 2005 関数はありますか?
ありがとう、
トーマス