一致する最初のレコードの選択
Analytics コマンドを使用して、テーブル内で検索条件に一致する最初のレコードを選択することができます。レコードは、選択されますが、Analytics の他のタイプの検索と違って分離されることはありません。他のレコードはテーブル ビューに残っています。
スクリプトでの有用性
一致する最初のレコードを選択する機能は、主に Analytics スクリプトで役立ちます。たとえば、下記のコマンドは他のスクリプト作成テクニックと組み合わせることで、選択された各レコードに対して反復アクションを実行するプレカーソルとしてテーブル内のレコード間を順次移動するのに使用することができます。
[検索]ダイアログ ボックス
Analytics ユーザー インターフェイスでは、[検索]ダイアログ ボックス(データ > 検索)からコマンドにアクセスできます。
[検索]ダイアログ ボックスの他のオプションを下の表に示します。また、これらのオプションが主に Analytics スクリプトで役立つと考えて、同等の Analytics スクリプト コマンドも示します。
メモ
コマンドの詳細については、下記のコマンド名をクリックしてください。
[検索]ダイアログ ボックスのオプション |
同等の Analytics コマンド |
説明 |
---|---|---|
レコード検索 |
テーブル内の特定のレコード番号を選択します。 |
|
条件検索 |
あらゆる型のリテラル、任意のデータ型を使用した式、またはデータ型が混在した式の最初の出現を選択します。テーブルは、インデックス付けされている必要はありません。 例:
|
|
文字検索 |
昇順でインデックス付けされている文字フィールドで、文字リテラル(たとえば、New York)の最初の出現を選択します。 メモ FIND コマンドと FIND( ) 関数は Analytics の 2 つの別個の機能であり、大きな違いがあります。 |
|
式検索 |
昇順でインデックス付けされている文字フィールドで、文字リテラル(たとえば、"New York")または文字式(たとえば、v_city)の最初の出現を選択します。 |
インデックスの必要性
[文字検索]または[式検索]オプションを使用するには、検索する文字フィールドにまず昇順のインデックスを作成する必要があります。どちらのオプションも、インデックス付きのフィールドでのみ検索を行います。
テーブルが 2 つ以上のフィールドでインデックス付けされている(入れ子のインデックス)場合は、主キー フィールドのみが検索されます。ただし、主キー フィールドは、昇順でインデックス付けされた文字フィールドであるとします。インデックスが条件付きである場合は、ビューから除外されたレコードは検索対象からも除外されます。
ガイドライン
データ型 |
文字フィールドではすべてのオプションを使用できます。日付時刻フィールドまたは数値フィールドでは、[条件検索]オプションのみを使用できます。 |
---|---|
部分一致 |
文字フィールドを検索する場合には部分一致がサポートされますが、検索文字列はフィールドの先頭に現れる必要があります。 たとえば、Vendor_Name = "Uni" は "United Equipment" を見つけることができますが、Vendor_Name = "Equip" では見つけられません。 |
大文字と小文字の区別 | すべてのオプションは、文字フィールドの検索に使用される場合、大文字と小文字を区別します。 |
パフォーマンス | [条件検索]オプションはテーブルを順次検索するため、[文字検索]や[式検索]のようなインデックス付きのテーブルを検索するオプションよりも処理速度が遅くなります。ただし、[条件検索]オプションには、テーブルのインデックス付けに費やされる時間はかかりません。 |
レコードの順序 | [条件検索]オプションは、テーブル内のレコードの元の順序を保持することになり、分析の性質によっては、このことが望ましい場合もあります。 |
テーブル内の特定のレコード番号を選択する
- Analytics メイン メニューから、[データ > 検索 > レコード検索]を選択します。
- [式]テキスト ボックスにレコード番号を入力して[OK]をクリックします。
レコード番号が見つかった場合、そのレコードが選択され、テーブルはそのレコードに位置付けられます。
任意の型のリテラルまたは式の最初のオカレンスを選択する
- Analytics メイン メニューから、[データ > 検索 > 条件検索]を選択します。
- 次のいずれかを実行します。
- [式]ボックスに式を入力して[OK]をクリックします。
- [式]をクリックして式ビルダーを開き、式を作成して[OK]をクリックし、もう一度[OK]をクリックします。
式は、要求に応じて簡単にも複雑にもなります。1 つのフィールドまたは複数のフィールドを含むことができるほか、データ型を混在させることもできます。例:
Vendor_Name = "United Equipment"
Invoice_Amount > 1000
Vendor_Name = "United Equipment" AND Invoice_Amount > 1000 AND Invoice_Date > `20140930`
文字リテラル値は二重引用符で、日付時刻値はバッククォートで囲む必要があります。
指定した値が見つかった場合、テーブルはそのレコードに位置付けられます。
指定した値が見つからなかった場合、テーブルは最初のレコードに位置付けられます。
インデックス付きテーブル内の文字リテラルの最初のオカレンスを選択する
- 検索したいテーブルのインデックスをアクティブ化します。
テーブルには、検索したい文字フィールドでインデックスを作成しておく必要があります。
- Analytics メイン メニューから、[データ > 検索 > 文字検索]を選択します。
-
[式]テキスト ボックスに文字リテラル値を入力して[OK]をクリックします。
引用符がフィールドのデータの一部でない限り、文字リテラル値を引用符で囲まないでください。例:
-
United Equipment
-
R("R" で始まる最初の値を検索する場合)
指定した値が見つかった場合、テーブルはそのレコードに位置付けられます。
指定した値が見つからなかった場合は、"キーと一致するインデックスがありません" というメッセージが表示されます。テーブルは、指定した値よりも大きいキー フィールド値を持つ最初のレコードに位置付けられます。指定した値より大きい値がない場合は、テーブルの最初のレコードに位置付けられます。
-
インデックス付きテーブル内の文字リテラルまたは式の最初のオカレンスを選択する
- 検索したいテーブルのインデックスをアクティブ化します。
テーブルには、検索したい文字フィールドでインデックスを作成しておく必要があります。
- Analytics メイン メニューから、[データ > 検索 > 式検索]を選択します。
- 次のいずれかを実行します。
- [式]テキスト ボックスに文字型の式または文字リテラル値を入力して、[OK]をクリックします。
- [式]をクリックして式ビルダーを開き、式を作成して[OK]をクリックし、もう一度[OK]をクリックします。
例:
v_vendor_name
"United Equipment"
文字リテラル値は、二重引用符で囲む必要があります。
指定した値が見つかった場合、テーブルはそのレコードに位置付けられます。
指定した値が見つからなかった場合は、"キーと一致するインデックスがありません" というメッセージが表示されます。テーブルは、指定した値よりも大きいキー フィールド値を持つ最初のレコードに位置付けられます。指定した値より大きい値がない場合は、テーブルの最初のレコードに位置付けられます。
Analytics 検索コマンドの比較
以下に、Analytics 検索コマンド同士での主要機能の比較対照表を示します。Analytics スクリプトでコマンドを使用する場合、各コマンドを制御する詳細な規則が異なることがあるのを知っておくと役立ちます。
レコード検索 / 条件検索 | 文字検索 | 式検索 | |
---|---|---|---|
検索可能なデータ型 |
(レコード番号で検索することもできます) |
文字 | |
検索場所 |
|
フィールド | |
関連フィールドでの検索 |
はい (完全修飾フィールド名を指定する必要があります) |
はい | |
インデックスの必要性 | いいえ |
はい (昇順である必要があります) |
|
先頭スペースの検索 |
はい (データまたは検索文字列内のスペースは、文字として扱われます) |
いいえ |
はい (データまたは検索文字列内のスペースは、文字として扱われます) |
大文字と小文字の区別 | はい | ||
部分一致 |
はい (検索文字列は、フィールドの先頭に現れる必要があります。文字のみ) |
はい (検索文字列は、フィールドの先頭に現れる必要があります) |
|
検索語を囲む引用符の必要性 |
|
いいえ(引用符がデータの一部でない限り、検索語を引用符で囲んではいけません) | はい |
[正確な文字比較を行う]オプション (SET EXACT ON/OFF) による影響 |
はい | いいえ | |
式のサポート | はい | いいえ | はい |
付記 | [検索]ダイアログ ボックスの[レコード検索]および[条件検索]操作と、LOCATE RECORD/LOCATE コマンドは同等です。 | [検索]ダイアログ ボックスの[文字検索]操作と FIND コマンドは同等です。 | [検索]ダイアログ ボックスの[式検索]操作と SEEK コマンドは同等です。 |