-
-
伶俐 数据达人Lv4
发表于2019-2-25 15:58
悬赏1
已解决
楼主
请教一下大神们,sql数据源在写过滤条件的时候,能否实现参数多选?
参数单选的时候
在sql数据源里这样写实现了单选过滤<#=if(@wjfl="","1=1",if(@wjfl="01","MM.FIVE_CLASS='01'",if(@wjfl="02","MM.FIVE_CLASS='02'",if(@wjfl='03',"MM.FIVE_CLASS='03'",if(@wjfl='04',"MM.FIVE_CLASS='04'","MM.FIVE_CLASS='05'")))))#>
想请教一下,当参数多选的时候,如何写这个过滤条件?
万分感谢! ! !
参数单选的时候

在sql数据源里这样写实现了单选过滤<#=if(@wjfl="","1=1",if(@wjfl="01","MM.FIVE_CLASS='01'",if(@wjfl="02","MM.FIVE_CLASS='02'",if(@wjfl='03',"MM.FIVE_CLASS='03'",if(@wjfl='04',"MM.FIVE_CLASS='04'","MM.FIVE_CLASS='05'")))))#>
想请教一下,当参数多选的时候,如何写这个过滤条件?

万分感谢! ! !
31个回答
本帖最后由 伶俐 于 2019-2-26 11:11 编辑
缱绻 发表于 2019-2-26 11:06
所以现在问题就是把[ ]换成()是不是就可以了呢。
<#=if(@zcfl='',"1=1","MM.FIVE_CLASS in ('"+replaceregex(@zcfl,"\|",",'")+"')")#> 我是这样写的,但是还是报错了
缱绻 发表于 2019-2-26 11:06
所以现在问题就是把[ ]换成()是不是就可以了呢。
你好,我试了一下这个 : AND MM.FIVE_CLASS IN ('<#=replaceregex(@zcfl,"\|",",'")#>') 换成这种写法后,选择一个选项,可以正常计算,但是选2个就报之前的错
伶俐 发表于 2019-2-26 11:29
你好,我试了一下这个 : AND MM.FIVE_CLASS IN ('') 换成这种写法后,选择一个选项,可以正常计算, ...
我本地测试一下 给您回复把。
伶俐 发表于 2019-2-26 11:29
你好,我试了一下这个 : AND MM.FIVE_CLASS IN ('') 换成这种写法后,选择一个选项,可以正常计算, ...
是这个报错吗?ORA-00907: 缺失右括号
缱绻 发表于 2019-2-26 12:00
是这个报错吗?ORA-00907: 缺失右括号
不是,这个条件 MM.FIVE_CLASS IN ('<#=replaceregex(@zcfl,"\|",",'")#>') 单选(只选择正常,或者只选择关注)的话,可以正常,但是选2个(同时选中正常与关注),或3个选项就报错

缱绻 发表于 2019-2-26 12:00
是这个报错吗?ORA-00907: 缺失右括号
非常感谢您的帮助,我这边这个问题解决了 ,谢谢!!!<#=if(@zcfl='','1=1'," MM.FIVE_CLASS in ('" +replaceregex(@zcfl,"\|","','") +" ')")#>