如何从过滤器中选择属性?

问题描述 投票:0回答:1

我的查询写成-

from xyzStream [str:contains(name,'John') or str:contains(name,'Peter')  or str:contains(name,'Sandy') ]
select name 
insert into outputStream

但现在我想增强功能,使我通过匹配的过滤器子字符串。例如,如果str:contains(name,'John')返回true,则在输出流中插入'John'。

在SiddhiQL中有没有办法做到这一点?

siddhi
1个回答
1
投票

目前尚不支持,但是您可以在带有str:contains和ifthenElse的select子句中执行相同的操作,

from xyzStream [str:contains(name,'John') or str:contains(name,'Peter')  or str:contains(name,'Sandy') ]
select name, 
    ifthenElse(str:contains('John'), 'John', ifThenElse(str:contains('Peter'), 'Peter', 'Sandy')) as matchedString
insert into outputStream

有关更多详细信息,请参见ifThenElse函数的example

© www.soinside.com 2019 - 2024. All rights reserved.