SEEK コマンド
インデックス付き文字フィールドで、指定した文字式または文字列と一致する最初の値を検索します。
構文
SEEK 検索式
パラメーター
名前 | 説明 |
---|---|
検索式 |
検索する文字式。 任意の有効な文字式、文字変数、あるいは引用符で囲まれた文字列として指定することができます。 検索式は、大文字と小文字が区別されます。先頭にスペースを含むことができ、文字のように扱われます。 |
例
文字変数と一致するフィールドの最初の値を見つける
Card_Number フィールドは文字フィールドとして定義されており、昇順でインデックス付けされています。
次の例は、v_card_num 変数の値と完全に一致するか、先頭が一致するフィールドの最初の値を検索します。
INDEX ON Card_Number TO "CardNum" OPEN SET INDEX TO "CardNum" SEEK v_card_num
文字文字列と一致するフィールドの最初の値を見つける
Card_Number フィールドは文字フィールドとして定義されており、昇順でインデックス付けされています。
次の例は、文字リテラル"AB-123" 値と完全に一致するか、先頭が一致するフィールドの最初の値を検索します。
INDEX ON Card_Number TO "CardNum" OPEN SET INDEX TO "CardNum" SEEK "AB-123"
備考
メモ
このコマンドの動作の詳細については、Analytics のヘルプを参照してください。
機能の仕組み
SEEK コマンドを使用すると、テーブル内で、インデックス付きの文字フィールドに指定した検索式を含んでいる最初のレコードに直接移動できます。
- 検索式が見つかった場合、テーブル内で最初の一致するレコードが選択されます。
- 検索式が見つからない場合、"キーと一致するインデックスがありません" というメッセージが表示され、テーブルは、検索式よりも大きい値を持つ最初のレコードに位置付けられます。
検索式よりも大きい値がインデックス付きフィールドに存在しない場合は、テーブルは最初のレコードに位置付けられます。
インデックスの必要性
SEEK を使用して、文字フィールドを検索するには、最初に昇順でフィールドにインデックスを作成する必要があります。 複数の昇順の文字フィールドを基にインデックスが作成されている場合は、そのインデックスに指定されている最初のフィールドだけが検索されます。
SEEK で、文字以外のインデックス フィールドや、降順でインデックス付けされた文字フィールドを検索することはできません。
部分一致がサポートされる場合とは
部分一致がサポートされます。 インデックス付きフィールドに含まれる長い値の一部を検索式に指定できるのです。 ただし、検索式は、一致を成すフィールドの先頭に現れる必要があります。
SEEK コマンドは、[正確な文字比較を行う]オプション(SET EXACT ON/OFF)の影響を受けません。