DataWorks给个样例你吧,现在有a和b两个参数,a和b的值给的不一样时是正常的,怀疑是bug?[阿里云]

DataWorks给个样例你吧,现在有a和b两个参数,a和b的值给的不一样时是正常的,但是给的值一样就不正常了,比如都给1,然后b参数的值就会被加上中括号。怀疑是bug?select
val
from
(
select 10 as val
)
where
(1 in(${a}) or ${a} is null)
and 2 in(${b})
;用数据服务接口可以测一下,a和b传参的值相同和不同时生成的sql

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 同个参数不能同时放在in 和 非in的计算里 如果有这样的需要 需要拆分成两个参数 看上面的案例 a同时出现在了in和非in的运算里 需要拆分成 a1 和 a2两个参数试下,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

  2. 在您的 SQL 查询中,where 子句中的条件可能解释为错误的布尔表达式。

    ab 的值相同时,生成的 SQL 语句将包含一个无效的子查询,例如:

    select val from (select 10 as val) where (1 in(1) or 1 is null) and 2 in([1]);

    在这种情况下,SQL 引擎可能会报错或返回不正确的结果。

    为了解决这个问题,请确保使用有效的 SQL 语法,并正确地处理参数。如果您怀疑这是一个 DataWorks 中的 bug,请联系阿里云技术支持以获取更多帮助和信息。