如何在条件判断中同时使用in和substr

image.png${if(orgCode<>'2000',"and '20'||substr(DPT_NO,1,4) in (substr('"+orgCode+"',1,6))","")}

我想实现的大致如上

FineReport LZ 发布于 2020-9-28 10:29 (编辑于 2020-9-28 10:30)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
LarryAbbyLv5中级互助
发布于2020-9-28 10:31(编辑于 2020-9-28 10:55)

你这个应该是可以使用的吧

${if(orgCode<>'2000',"and 20||substr(DPT_NO,1,4) in (substr('"+orgCode+"',1,6))","")}

你这个是可以正常使用的呢


有个方式你可以参考下,你的下拉框中的数据应该是通过数据集的方式进行展现的,你可以在数据集里进行处理,比如select  substr(表字段,1,6) 实际值,表字段 显示值 from 表,这样你就不需要在查询的sql里进行截取操作了


这样你之前的那段sql就可以直接写成


${if(orgCode<>'2000',"and 20||substr(DPT_NO,1,4) in '"+orgCode+"')","")}


  • LZ LZ(提问者) 写一个参数没事,写两个会报java.lang.NullPointerException
    2020-09-28 10:36 
  • LarryAbby LarryAbby 回复 LZ(提问者) 多个参数应该需要使用到js,将下拉框中的数据转成数组,截取后再传回到数据库进行查询
    2020-09-28 10:40 
  • LarryAbby LarryAbby 回复 LZ(提问者) 有个方式你可以参考下,你的下拉框中的数据应该是通过数据集的方式进行展现的,你可以在数据集里进行处理,比如select substr(表字段,1,6) 实际值,表字段 显示值 from 表,这样你就不需要在查询的sql里进行截取操作了
    2020-09-28 10:53 
  • LZ LZ(提问者) 回复 LarryAbby 表字段是可以不用截取了,但是orgCode参数还是得截取,这就是问题所在,怎么在数据集中同时使用in(\'${参数}\')
    2020-09-28 11:15 
  • LarryAbby LarryAbby 回复 LZ(提问者) 参数字段截取你可以放到sql里截取,在数据集里截取,截取后的是实际传入的值,截取前的是下拉框显示的值
    2020-09-28 11:42 
  • 2关注人数
  • 478浏览人数
  • 最后回答于:2020-9-28 10:55
    请选择关闭问题的原因
    确定 取消
    返回顶部