概要
%EXACT は、EXACT 照合シーケンス内の expression を返します。この照合シーケンスは、次のように値を順序付けます。
-
すべての実際の値の前に NULL が照合されます。%EXACT は、NULL に影響しません。これは既定の照合と同じです。
-
キャノニック形式の数値は (数値として入力されたか、文字列として入力されたかに関係なく)、文字列値よりも先に数値順に照合されます。
-
文字列値は、大文字/小文字を区別する文字列順序で照合されます。文字列に対する EXACT 照合シーケンスは、ANSI 標準の ASCII 照合シーケンスと同じものです。数字は大文字のアルファベット文字の前に照合され、大文字のアルファベット文字は小文字のアルファベット文字の前に照合されます。句読点文字は、そのシーケンスのそれぞれの場所で照合されます。
この結果、以下のような順序になります。
NULL
-2 /* canonical number collation */
0
1
2
10
22
88
'' /* empty string */
# /* character-by-character string collation */
-00 /* non-canonical number collates as string */
0 Elm St. /* character-by-character string collation */
022 /* non-canonical number collates as string */
1 Elm St.
19 Elm St.
19 elm St. /* string collation is case-sensitive */
19Elm St.
2 Elm St.
201 Elm St.
21 Elm St.
Elm St.
%EXACT は一般的に、文字が含まれる文字列値を、大文字/小文字を区別する順序で照合するために使用されます。SQL の既定では、照合目的ですべての文字を大文字に変換します。
%EXACT は、InterSystems SQL の拡張機能であり、SQL 検索クエリ用として使用するものです。
%SYSTEM.UtilOpens in a new tab クラスの Collation()Opens in a new tab メソッドを使用すると、ObjectScript で同じ照合変換を実行できます。
%EXACT は、入力文字列を完全な数値として (キャノニック形式)、または数字が他の任意の文字と同じように処理される混合文字列として照合します。これを %MVR と比べると、%MVR では文字列内の数値部分文字列に基づいて文字列をソートしている点が異なります。
DISTINCT および GROUP BY
DISTINCT 節とGROUP BY 節は、大文字の既定の照合に基づいて値をグループ化し、実際のデータ値がすべて大文字でない場合でも、すべて大文字で値を返します。
Note:
既定では、SQL インデックスは文字列データを大文字の既定の照合で表します。このため、EXACT 照合を指定すると、インデックスの使用が妨げられ、潜在的にパフォーマンスに大きな影響を及ぼす可能性があります。