GROUP BY や DISTINCT クエリで大文字で検索されてしまう場合の対処方法
これは InterSystems FAQ サイトの記事です。
何の設定も行なっていない場合、GROUP BYやDISTINCTで指定したフィールドは大文字小文字を区別せずに全て大文字として処理されます。
これはGROUP BYやDISTINCTのグループ化がフィールドに対して定義された照合タイプに基づいて行われ、その文字列照合の既定値がSQLUPPERになっているためです。
以下のドキュメントに説明がある通り、DISTINCT は、フィールドに対して定義された照合タイプに基づいて、文字列値をグループ化します。
これを変更する方法は、以下の3種類になっています。
(A) %SQLSTRING または %EXACT照合関数を使用する
(B) フィールドの文字列照合を SQLSTRINGに変更する
また、フィールドにインデックスが設定されている場合には、インデックスの文字列照合も SQLSTRINGに変更する
(C) 管理ポータルで設定を変更する
※(B)について補足
・文字列照合をEXACTに設定しても動作しますが、一般的にはSQLSTRINGの使用が推奨されています。
・フィールドの文字列照合とインデックスの文字列照合は、同じ設定にすることが推奨されています。
※(C)の設定手順
システム > 構成 > SQL - (構成設定)
GROUP BY と DISTINCT クエリでオリジナルの値を結果に返す にチェックを入れる
※この設定変更を有効にするためには、クエリキャッシュの削除が必要です。

詳細は、以下のドキュメントをご参照ください。
ディスカッション (0)0