数据集中if参数like的实现

数据集中的参数company_code是一个字符串,值是逗号分隔的company_code,比如“000000,000001,0000002”,需要实现如果company_code包含000000,那么拼接 AND company_code in  ('" + company_code + "'),否则拼接

AND company_code in (select company_code  from  b )。下面的数据集是不对的,会导致不识别参数,请问该如何实现?

select *  from a

where 1=1

${if(company_code  LIKE '%000000%', " AND company_code in  ('" + company_code + "')", "AND company_code in (select company_code  from dim_company4select union select 'all') ")}

FineReport yzmaen2h6992354 发布于 2024-7-9 11:53 (编辑于 2024-7-9 11:55)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
Z4u3z1Lv6专家互助
发布于2024-7-9 11:55(编辑于 2024-7-9 11:58)

${if(find("000000",company_code)<=0, " AND company_code in  ('" + company_code + "')", 

"AND company_code in (select company_code  from dim_company4select union select 'all') ")}

----------

改成like了

${if(find("000000",company_code)>0, " AND company_code in  ('" + company_code + "')", "AND company_code in (select company_code  from dim_company4select union select 'all') ")}

最佳回答
1
snrtuemcLv8专家互助
发布于2024-7-9 11:56

select *  from a

where 1=1

${if(find("000000",company_code)>0, " AND company_code in  ('" + company_code + "')", "AND company_code in (select company_code  from dim_company4select union select 'all') ")}

  • 3关注人数
  • 148浏览人数
  • 最后回答于:2024-7-9 11:58
    请选择关闭问题的原因
    确定 取消
    返回顶部