ページの先頭行へ戻る
Interstage Big DataComplex Event Processing Server V1.1.0 開発リファレンス
FUJITSU Software

1.2.3 where句

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