数据集中有一个参数,我想不传参数是默认为选所有

比如所 select * from 销量 where 地区 in('$地区') 我如果不传入地区参数得到的结果为空,我想如果不传参数的化则默认为选择所有地区应该怎么写?

FineReport lincoder 发布于 2020-7-27 13:31
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
2
zsh331Lv8专家互助
发布于2020-7-27 13:37
select * from 销量 where 1=1 ${if(len(地区)=0,"", " and 地区 in ('"+地区+"')")}


  • lincoder lincoder(提问者) 我这么写完地区不传入值 后面where 条件我看了下日志为 where 1=2这个正常么?
    2020-07-27 13:42 
  • zsh331 zsh331 回复 lincoder(提问者) 1=2不正常,where条件不满足,查不出来数据。
    2020-07-27 13:43 
  • 帆软用户nf99HBUaxw 帆软用户nf99HBUaxw 回复 zsh331 请教大佬,字段旁边的两个+号表达的是什么含义呢
    2022-06-12 00:22 
最佳回答
0
historyLv4初级互助
发布于2020-7-27 13:34

where 地区 like (case when '$地区' is null then '%' else '$地区' end)  

最佳回答
0
dq_wwLv5见习互助
发布于2020-7-27 13:47

${if(len(diqu) = 0,"1=1"," 地区in('"+diqu+"')")}


diqu:参数名

  • 4关注人数
  • 739浏览人数
  • 最后回答于:2020-7-27 13:47
    请选择关闭问题的原因
    确定 取消
    返回顶部