传入参数没在这个字段中则取这个字段的最大值当做条件

表a有字段datemon

select * from a where  datemon ='${datemonth}'

实现如下功能:如果datemonth参数传入的值没在表a datemon这个字段中则取这个字段的最大值 sql怎么写image.png

SQL lincoder 发布于 2023-7-26 15:23
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-7-27 10:37

select * from a where  datemon =(select max(datemonth) from a where datemon<='${datemonth}')

最佳回答
0
坚定的小帆薯Lv6高级互助
发布于2023-7-27 10:32

给个思路

直接给个IF判断即可的,具体如下

①传过来的值为datemonth,

②最大值为datemax,具体获取方式看你,可以写数据集,用VALUE("ds1",1,1)取数,也可以直接用SQL,sql("FRDemo","SELECT max(datemonth) FROM TAB1",1)等等

③在写个判断即可:IF($datemonth<datemax,datemax,$datemonth)

  • 3关注人数
  • 124浏览人数
  • 最后回答于:2023-7-27 10:37
    请选择关闭问题的原因
    确定 取消
    返回顶部