我有一个非常基本的 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 != 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