同一个数据集,判断参数是否被填写,拼接一个unionsql,unionsql语句中有参数${}

同一个数据集,判断参数是否被填写,拼接一个union sql,union sql语句中有参数${}。

想要的效果:

(SELECT * FROM ConBasic 

WHERE billDate BETWEEN '${Start}' and '${End}' )

${if(len(bill)==0,"","union

(SELECT * FROM ConBasic 

WHERE billDate BETWEEN '${Start1}' and '${End1}' )"}

一共是5个参数,当$bill 为空,只执行第一段,$bill有值的时候,拼接一个sql,该sql也有它自己的参数。

不知道如何才能实现呢?

FineReport point啊 发布于 2020-9-10 19:40
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
yiyemeiyingLv4高级互助
发布于2020-9-10 21:25(编辑于 2020-9-10 21:30)
参考写法①:
SELECT a,b FROM ConBasic 

WHERE billDate BETWEEN '${Start}' and '${End}'

${if(len(bill)=0,""," union all SELECT a,b FROM ConBasic WHERE billDate BETWEEN '"+ Start1 +"' and '"+ End1 +"'"}


-- ==========


推荐->参考写法②
SELECT a,b FROM ConBasic 
WHERE billDate BETWEEN '${Start}' and '${End}'

union all

SELECT a,b FROM ConBasic 
WHERE billDate BETWEEN '${Start}' and '${End}'
${if(len(bill)=0," and 1=2"," and 1=1"}
-- 应该能理解吧!


  • 2关注人数
  • 383浏览人数
  • 最后回答于:2020-9-10 21:30
    请选择关闭问题的原因
    确定 取消
    返回顶部