最佳回答
1
CD20160914 Lv8 专家互助 发布于2022-3-14 10:49
${if(len(EQP)==0, "and 1=1" , "AND e.EQUIP_ID in ( '"+EQP+"')")}
rmHJPhsS(提问者)
- 你好,还是不能为空全查
CD20160914 回复 rmHJPhsS(提问者)
- 你上面还有其它限制条件呀。大哥。。。这个只是保证没有录这个参数的时候不限制,但是你上面还有其它限制条件。。。
rmHJPhsS(提问者) 回复 CD20160914
- 我是想实现在没有录入机台这个参数的时候展示当前条件下(其他限制条件有默认值且查询有数据)的所有数据
CD20160914 回复 rmHJPhsS(提问者)
- 你sql里面的参数叫EQP,,你看一下机台的参数名称是不是也叫:EQP
rmHJPhsS(提问者) 回复 CD20160914
- 是的,我能在机台多选情况下查询出来,但是当我前面其他条件都满足,机台为空时不能全查
取消
评论
最佳回答
0
让过去 Lv6 中级互助 发布于2022-3-14 10:48(编辑于 2022-3-14 10:49)
rmHJPhsS(提问者)
- WHERE
e.FACTORY = \'J0014\' AND
SUB_AREA_ID is not null and SUB_AREA_ID = nvl(\'${SUB}\',SUB_AREA_ID)
and AREA_ID is not null and AREA_ID = nvl(\'${Area}\',AREA_ID)
and ros.DATE_TIME BETWEEN \'${start}\' AND \'${start2}\'
AND ${if(len(EQP)==0,\"1=1\",\"and e.EQUIP_ID in (\'\"+EQP+\"\')\")}
您是说这样嘛,但是查询的时候说数据集及配置错误
让过去 回复 rmHJPhsS(提问者)
- 你这个SQL,把IF条件前面的AND没删掉,你这个查不出来的问题,应该是楼下说的
让过去 回复 rmHJPhsS(提问者)
- SQL按你自己写的也行
rmHJPhsS(提问者) 回复 让过去
- if前面的and删掉了,可以多查了,但还是不能为空全查
让过去 回复 rmHJPhsS(提问者)
- 把1=1删掉
取消
评论
最佳回答
0
snrtuemc Lv8 专家互助 发布于2022-3-14 10:49
看你的sql没有问题,看看那下拉复选款的分隔符设置了
最佳回答
0
助人为乐 Lv4 中级互助 发布于2022-3-14 10:49(编辑于 2022-3-14 10:52)
你这里缺少表达式的原因是前面多了一个and 用我这个。前面不用and直接放在上一个条件后面。数字,汉字通用的。 1=1 一般是where 1=1 这样用的,其他地方用我后面这个的话不需要1-1 直接跟在后面 ${if(参数名称 = "","","and end字段名称 in('" + replace(参数名称,",","','")+ "')")}
rmHJPhsS(提问者)
- 你好,第一个方法把and去掉可以多查,但是不能为空全查;第二个方法也是
助人为乐 回复 rmHJPhsS(提问者)
- ${if(参数名称 = \"\",\"\",\"and 字段名称 in(\'\" + replace(参数名称,\",\",\"\',\'\")+ \"\')\")} 这个就是不选就是全查。然后选了多少就是查对应的。如果你结果不是这样,可以看一下你传参是什么看一下报错。
取消
评论
最佳回答
0
吃肉不长肉 Lv6 见习互助 发布于2022-3-14 10:50
${if(len(EQP)==0,"","AND e.EQUIP_ID IN('"+EQP+"')")}