当模板中有几个参数控件可供查询时,使用and语句时所有条件都必须有输入值才有查询记录
使用or语句时,得到的范围又太广了。请问有什么方法可以做到精准查询?也就是有5个查询条件时,只合并查询其中三个条件,暂时不需要用其他两个条件时,也可以有结果 。
FineReport neyhig 发布于 2020-12-10 14:02
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
krystal033Lv7高级互助
发布于2020-12-10 14:04(编辑于 2020-12-10 14:06)

https://help.fanruan.com/finereport/doc-view-2395.html?source=1 参数为空选择全部 

所有参数都用这个方法  五个参数只选两个参数就会出来符合这两个参数的数据

${if(len(参数名字) == 0,"","and 参数字段 = ('" + 参数名 + "')")}

  • neyhig neyhig(提问者) 请问这五个条件应该怎么连接起来呢?我直接where 条件1 and 条件2 and 条件3…可以吗?提示缺失表达式了
    2020-12-10 14:49 
  • krystal033 krystal033 回复 neyhig(提问者) 不用and where1=1 然后五个这个就行 如果本来就有where条件了 就在那个条件以后加上就好 也不用and
    2020-12-10 14:52 
最佳回答
0
axingLv6专家互助
发布于2020-12-10 14:05(编辑于 2020-12-10 14:57)

参数这样写

SELECT * FROM 表名
where 1=1  
${if(len(参数1) == 0,"","and 字段1 in ('" + 参数1 + "')")}
${if(len(参数2) == 0,"","and 字段2 in ('" + 参数2 + "')")}
${if(len(参数3) == 0,"","and 字段3 in ('" + 参数3 + "')")}
${if(len(参数4) == 0,"","and 字段4 in ('" + 参数4 + "')")}
${if(len(参数5) == 0,"","and 字段5 in ('" + 参数5 + "')")}


  • neyhig neyhig(提问者) 请问这五个条件应该怎么连接起来呢?我直接where 条件1 and 条件2 and 条件3…可以吗?提示缺失表达式了
    2020-12-10 14:49 
  • axing axing 回复 neyhig(提问者) 更新了
    2020-12-10 14:57 
最佳回答
0
AmyQLv6初级互助
发布于2020-12-10 14:07(编辑于 2020-12-10 14:49)

五个字段用这种方式:

where 1=1

${if(len(字段1) == 0,"","and 字段1 = '"+ 字段1 +"'")}

${if(len(字段2) == 0,"","and 字段2 = '"+ 字段2 +"'")}

${if(len(字段3) == 0,"","and 字段3 = '"+ 字段3 +"'")}

${if(len(字段4) == 0,"","and 字段4 = '"+ 字段4 +"'")}

${if(len(字段5) == 0,"","and 字段5 = '"+ 字段5 +"'")}

  • neyhig neyhig(提问者) 请问这五个条件应该怎么连接起来呢?我直接where 条件1 and 条件2 and 条件3…提示缺失表达式?
    2020-12-10 14:45 
  • AmyQ AmyQ 回复 neyhig(提问者) where 后面加个 1=1
    2020-12-10 14:50 
  • 4关注人数
  • 406浏览人数
  • 最后回答于:2020-12-10 14:57
    请选择关闭问题的原因
    确定 取消
    返回顶部