where句によって、複数イベントストリームを結合する際の条件やイベントをフィルターする際の条件を指定できます。
構文:
where 条件式
where句の条件式では、比較演算子 =、<、>、>=、<=、!=、<>、is null、is not null、および、andやorによる論理的な組合せをサポートしています。
注意
Virtual Data Window利用時の注意
Virtual Data Window に格納された情報にアクセスする際に利用できるwhere句には、キャッシュのエントリーを一意に特定する条件が含まれる必要があります。キャッシュのエントリーを一意に特定する条件とは、vdw:ehcache()で指定したキープロパティと"="で比較する条件です。以下にその例を示します。
以下の例では、W.code = T.code でキャッシュのエントリーを一意に特定できるのでOKです。
create window MarketWindow.vdw:ehcache("MARKET", "code") as (code string, high int, low int);
on TicketEvent as T
select W.high, W.low from MarketWindow as W
where W.code = T.code and ( T.price > W.high or T.price < W.low);
以下は上記のルールでwhere句だけを変更した場合の、OKな記述例と、NGな記述例です。
No | 記述例 | OK/NG | 説明 |
---|---|---|---|
1 | where code = '1111' | OK | キープロパティに対する"="による比較で一意に特定できるのでOK |
2 | where ( T.price > W.high or T.price < W.low) and W.code=T.code | OK | 別の条件が前にあるが、キープロパティに対する"="による比較が含まれ、キャッシュのエントリーを一意に特定できるのでOK |
3 | where high = 1000 | NG | キープロパティに対する"="による比較がないためNG |
4 | where code > '1111’ | NG | キープロパティに対して "="以外の演算を行っているためNG |
5 | where code = '1111' or high = 1000 | NG | キープロパティに対する"="による比較が含まれているが、or条件があり、キャッシュのエントリーを一意に特定できないためNG |