非常に基本的な Esper の質問があります。Esper の OUTPUT WHEN と WHERE キーワードの基本的な違いは何ですか。これらのキーワードを使用している例を次に示します。
select
high
from
Bar
where
getDirection() != Direction.FLAT;
と
select
high
from
Bar
output when
getDirection() != Direction.FLAT;
「output when」は、条件が真になるまで出力をバッチ処理します。
常に where 節よりもフィルターを優先します: Bar から high を選択します (方向 != Direction.FLAT)
select high from Bar where getDirection() != Direction.FLAT;
--> このステートメントは、 のすべての値を返しますgetDirection()!= Direction.FLAT
。そのテーブルの値を外部の値と比較しているようなものです。
select high from Bar when getDirection() != Direction.FLAT;
--> このステートメントは、特定の条件が真のBar
ときgetDirection() != Direction.FLAT
に値を取得しているようなものです。