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)の影響を受けません。