WHERE
句は、式の入力レコードをフィルタ処理するために使用します。
WHERE
句は、FROM
句の直後に指定する必要があります。
WHERE
句は、次のようなブール式で使用できます:
{= , <>, <, <=, >, >=}
SUBSET
やIS_MEMBER_OF
など
<attribute> IS {NULL, NOT NULL}
(アトミック値)および<attribute> IS {EMPTY, NOT EMPTY}
(セットの場合)
<attribute-list> IN <source-statement>
。 これらのキーの数と型は、IN
句によって参照される文で使用されるキーの数とタイプに一致する必要があります。 詳細は、INを参照してください。
WHERE
はソース内の属性を検索するため、SELECT
句からのエイリアシング属性はWHERE
句で使用できません。 したがって、次の例です:
RETURN results AS SELECT FactSales_RecordSpec AS id, FactSales_ProductKey AS keys FROM SaleState WHERE id > 5 ORDER BY keys無効であり、エラー・メッセージを返します:
In statement "results": In WHERE clause: The state "Sales" does not have an attribute named "id"
集計関数がWHERE
句で使用されている場合、ブール式はカッコで囲む必要があります。 集計関数のリストは、「集計関数」のトピックを参照してください。
RETURN Reps AS SELECT SUM(Amount) AS SalesTotal FROM SaleState WHERE Region = 'West' GROUP BY SalesRep HAVING SalesTotal > 10000
RETURN QuarterTotals AS SELECT SUM(Amount) As SalesTotal, SUM(Amount) WHERE (SalesRep = 'Juan Smith') AS JuanTotal FROM SaleState GROUP BY Quarter
この場合、四半期ごとに、総売上とJuan Smithの合計売上の両方が返されます。 WHERE
句のブール式は、集計関数(この場合はSUM
)で使用されるため、カッコで囲まれていることに注意してください。
WHERE
句の使用方法も示しています:
SUM(Amount) WHERE (SalesRep = 'Juan Smith') AS JuanTotal
集計ごとのWHERE
フィルタの詳細は、「集計フィルタ」を参照してください。