我的查询写成-
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中有没有办法做到这一点?
目前尚不支持,但是您可以在带有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