if嵌套if查询sql

我现在想实现一个功能,现在有一个下拉选择框,根据选项不同执行不同的sql语句段,因为sql语句里已经包含了if判断条件,if嵌套if是否会导致参数失效?如何能达到我想要的效果?


FineReport 用户z5890869 发布于 2020-12-2 14:09
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
snrtuemcLv8专家互助
发布于2020-12-2 14:11(编辑于 2020-12-2 14:13)

if嵌套,这个可以去掉

${if(p1='日'),"XXXX where 1=1"+if(len(XX)=0,"","and XXX in ('"+XXX+"')"),"select 2"}

image.png

最佳回答
0
shirokoLv6资深互助
发布于2020-12-2 14:18

${IF(1,IF(2,"",""),"")}

IF多重嵌套直接用就行,""换成你的sql语句,不要再加${}了,

最佳回答
0
yikefuLv6初级互助
发布于2020-12-2 14:34

你这个可以在公式里写sql函数吧 应该能满足

最佳回答
0
asanguosha4252Lv5初级互助
发布于2020-12-2 14:37

我一般直接写存储过程了。。exec 存储过程名 '${p1}'        ,然后在拿到p1去 存储过程IF判断 。这样比较清晰也不用经常修改帆软模板,直接改存储过程

最佳回答
0
指间沙Lv6中级互助
发布于2020-12-2 14:39

  ${if(len(ksrq) == 0,"",if((ksrq)="2020-11-24"," and convert(varchar(20),aaa.time,20)>='"+ksrq+" 00:00:00'", " and convert(varchar(20),aaa.time,20)>='"+ksrq+" 18:00:00'") )}

参考下我这个是当日起是24号的时候,取2020-11-24 00:00:00开始,否则其他日起就从 18:00:00开始,参照改下就可以了。

  • 7关注人数
  • 1096浏览人数
  • 最后回答于:2020-12-2 14:39
    请选择关闭问题的原因
    确定 取消
    返回顶部