数据服务API一个入参不支持同时放在in运算和非in运算里
现象:
传入string类型的参数-1sql解析成了列表[-1]。
复现的sql:select name from tb_8string where (concat(unknown) = -1 OR c1 in (unknown))
AND (concat(unknown) = -1 OR c2 in (unknown))
解析出来的sql:[INFO] [18:42:16.713] api sql realsql : SELECT name FROM tb_8string WHERE (concat('-1') = -1 OR c1 IN ('-1')) AND (concat([-1]) = -1 OR c2 IN ([-1]))
原因:
一个入参不支持同时放在in运算和非in运算里。
解决:
2个建议。
第一种:继续用基础sql,拆成两个参数。
比如c1拆成 a1和a2,c2拆成a3和a4。a1和a2传入相同的数值。a3和a4传入相同的数值。sql改成:
select name from tb_8string where (concat(unknown) = -1 OR c1 in (unknown))
AND (concat(unknown) = -1 OR c2 in (unknown))
第二种:新建api,用高级sql。用mybatis语法来写他的语句。,此回答整理自钉群“DataWorks交流群(答疑@机器人)”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。