where1=1,比如搜索条件不为空时,使用if再拼接一个and,有报错!求指导

select id, CREATE_TIME, FACTORY_CODE, DEVICE_NAME

from DEVICE_TAI_ZHANG

where 1 = 1

IF(len(查询日期1)==0, '', and TO_CHAR(CREATE_TIME, 'yyyy-MM-dd') >= '${查询日期1}')

IF(len(查询日期2)==0, '', and TO_CHAR(CREATE_TIME, 'yyyy-MM-dd') <= '${查询日期2}')

该sql有报错,截图如下:

image.png

FineReport Russell.Frank 发布于 2022-6-15 13:53
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
15922204585Lv6高级互助
发布于2022-6-15 13:54

select id, CREATE_TIME, FACTORY_CODE, DEVICE_NAME

from DEVICE_TAI_ZHANG

where 1 = 1

${IF(len(查询日期1)==0, '', "and TO_CHAR(CREATE_TIME, 'yyyy-MM-dd') >= '"+查询日期1+"'")}

${IF(len(查询日期2)==0, '', "and TO_CHAR(CREATE_TIME, 'yyyy-MM-dd') <= '"+查询日期2+"'")}

  • 2关注人数
  • 401浏览人数
  • 最后回答于:2022-6-15 13:54
    请选择关闭问题的原因
    确定 取消
    返回顶部