EQLレコード・フィルタのfilterStringバージョンは、ブール式のWHERE句のタイプで指定されます。
WHERE式では、値がテストされる1つ以上の属性と、1つ以上のテスト条件が使用されます。たとえば、式では、数字と文字列値の比較演算子、NULL値の評価演算子、論理演算子、いくつかの関数を使用できます。EQL文とは異なり、WHEREキーワード自体は問合せ文字列で使用されません。
| 演算子 | 説明 | 例 |
|---|---|---|
| = | 等しい(2つの式が等しいかどうかをテストします) | COUNTRY_NAME = 'France' |
| <> | 等しくない(2つの式の条件が相互に等しくないかどうかをテストします) | PROD_WEIGHT_CLASS <> 2 |
| > | より大きい(1つの式の条件がもう1つの式よりも大きいかどうかをテストします) | PROD_MIN_PRICE > 1000 |
| < | より小さい(1つの式の条件がもう1つの式よりも小さいかどうかをテストします) | QUANTITY_SOLD < 500 |
| >= | 以上(1つの式の条件がもう1つの式以上であるかどうかをテストします) | PROD_MIN_PRICE >= 75 |
| <= | 以下(1つの式の条件がもう1つの式以下であるかどうかをテストします) | PROMO_COST <= 1500 |
| BETWEEN low AND high | 値の境界範囲を指定します。ANDを使用して、低値(開始値)と高値(終了値)を分けます。 | FISCAL_YEAR BETWEEN 2000 AND 2006 |
| IS NULL | 単一割当て属性でNULL値の検索を指定します。 | CUST_EMAIL IS NULL |
| IS NOT NULL | 単一割当て属性でNULL以外の値の検索を指定します。 | PROD_STATUS IS NOT NULL |
| IS EMPTY | (複数割当て属性で)空のセットの検索を指定します。 | LOCALES IS EMPTY |
| IS NOT EMPTY | (複数割当て属性で)空以外のセットの検索を指定します。 | LOCALES IS NOT EMPTY |
| AND | 2つの条件を組み合せて、どちらの条件もTRUEの場合はTRUEに評価します。 | PROD_MIN_PRICE > 1000 AND COUNTRY_NAME = 'Spain' |
| OR | 2つの条件を組み合せて、いずれかの条件がTRUEの場合はTRUEに評価します。 | PROD_LIST_PRICE > 50 OR PROD_CATEGORY = 'Hardware' |
| NOT | ブール式の値を反転します。 | NOT(COUNTRY_REGION = 'Europe' AND AMOUNT_SOLD > 1000) |
問合せで集計関数(SUMなど)は使用できません。
<filterString>Flavors = 'Peach'</filterString>
Cannot compare mdex:string-set and mdex:string
<filterString>SOME i IN Flavors SATISFIES (i = 'Peach')</filterString>
<filterString>IS_MEMBER_OF('Peach', Flavors)</filterString>
<filterString>'Peach' IN Flavors</filterString>
単一割当て属性と複数割当て属性に関するこの警告は、すべてのデータ・タイプに適用されます。EQLでの複数割当てデータの操作の詳細は、『Oracle Endeca Server EQLガイド』を参照してください。
COUNTRY_NAME = 'Spain' // Correct COUNTRY_NAME = "Spain" // Incorrect because double quotes are not allowed COUNTRY_NAME = Spain // Incorrect because the attribute stores string values
COUNTRY_NAME = 'spain'は、すべてのCOUNTRY_NAME値がSpainである(つまり、spain値が存在しない)場合は一致しません。
AMOUNT_SOLD = 500 // Correct AMOUNT_SOLD = "500" // Incorrect because the attribute stores numeric values
対話Webサービスに対して直接問合せを行う場合(たとえば、soapUIツールを使用するなど)、解析エラーが生じないように一部のXML文字をエスケープする必要があります。たとえば、< (より小さい)文字ではなく、<エスケープ文字を使用する必要があります。この項の例では、読みやすくなるようにエスケープされていない文字が使用されます。