在sql里根据参数做if判断的问题

我有一个sql去数据库里查数据,在最后根据传入的参数做不同的group by判断

sql片段如下

GROUP BY report_id

${if(qtype=="按月","",",MONTH(create_date)")}        

${if(qtype=="按日","",",create_date")}        

现在的问题是当我的参数qtype值为按月时,sql拼了",create_date",而qtype值为按日时,sql拼了",MONTH(create_date)",也就是按月按日拼反了,请问这是什么原因啊?


FineReport mamin 发布于 2019-12-11 16:28
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
qhlLv6中级互助
发布于2019-12-11 16:33

if(条件,满足条件时,不满足条件时),你上面写反了

GROUP BY report_id
${if(qtype=="按月",",MONTH(create_date)","")} 
${if(qtype=="按日",",create_date","")}

或者如果仅且仅有两个,可以写在一起

GROUP BY report_id
${if(qtype=="按月",",MONTH(create_date)",",create_date")}


最佳回答
0
ww7Lv2初级互助
发布于2019-12-11 16:30

写成这样的试试

${if(qtype=="按月",",MONTH(create_date)","")}        

${if(qtype=="按日",",create_date","")}   


最佳回答
0
一条鱼的世界Lv4见习互助
发布于2019-12-11 16:47

${if(qtype1=="按月","",",MONTH(create_date)")}        

${if(qtype2=="按日","",",create_date")} 


  • 4关注人数
  • 1681浏览人数
  • 最后回答于:2019-12-11 16:47
    请选择关闭问题的原因
    确定 取消
    返回顶部