永洪社区

标题: 使用脚本传参出错 [打印本页]

作者: 无畏养生    时间: 2022-9-21 23:43
标题: 使用脚本传参出错
-- 新建数据集 001 ,运算符 IN 在AND里
select * from aaa
<年龄> WHERE age = ?{年龄} </年龄>
<名称> AND Name IN (?{名称}) </名称>

-- 新建数据集 002 ,运算符 IN 在WHERE里
select * from aaa
<名称> WHERE Name IN (?{名称}) </名称>
<年龄> AND age = ?{年龄} </年龄>

随便建个报告,使用aaa数据集,在使用 脚本--转载时运行填写,运算符IN的那个参数,如下,
使用002数据集的报告不会报错,使用001数据集的报告会报错
param['名称']='张三'


我在最新的桌面永洪版本,和8.0.6b企业版都试过了。运算符IN的参数好像只能跟随WHERE


作者: 阿姆斯特朗炮    时间: 2022-9-21 23:43
首先你得知道<>是什么意思,如果没有参数<>参数中的这一段其实是没有的,也就是你的参数有名称,没有年龄,你一个sql你把年龄的放在了前面,但是没有穿年龄的参数,所以where包括后面的都没有,只拼接上了and后面的名称,所以报and附近有语法错误,第二个数据集你的名称在前面,所以拼接的where条件是没有任何问题的
正确的写法应该是这样写
select * from aaa
WHERE  1=1 <年龄> and age = ?{年龄} </年龄>
<名称> AND Name IN (?{名称}) </名称>




欢迎光临 永洪社区 (https://club.yonghongtech.com/) Powered by Discuz! X3.4