开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

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

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

展开
收起
真的很搞笑 2023-09-05 15:23:37 23 0
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等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    DataWorks数据集成实时同步最佳实践(含内测邀请)-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载

    相关实验场景

    更多