DataWorks数据服务入参同时在in运算和非in运算?

DataWorks数据服务入参同时在in运算和非in运算?

展开
收起
真的很搞笑 2023-09-05 15:23:37 62 分享 版权
1 条回答
写回答
取消 提交回答
  • 数据服务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交流群(答疑@机器人)”

    2023-09-05 19:01:42
    赞同 展开评论

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

还有其他疑问?
咨询AI助理