数据集中IF判断问题

select *

from test

where 1=1

 ${IF(effect_type_data=1,"AND time_dimension=1",

 IF(effect_type_data=-1 ,

 IF((and( WEEKDAY(start_c) +1=7 , WEEKDAY(end_c) +1=6 )),  "AND time_dimension=-1 AND  acq_date=DATE_ADD('"+end_c+"',INTERVAL 1 day)  "  ,  "AND time_dimension=-1 AND 2=2 AND  da.sum_date  IS NOT NULL" )

 ,"AND time_dimension=-1  AND da.sum_date  IS NOT NULL"))}

传入参数 effect_type_data=-1 start_c=‘2023-01-01’end_c=‘2023-01-07 结果是AND time_dimension=-1 AND 2=2 AND  da.sum_date  IS NOT NULL

FineReport sc9527 发布于 2023-1-15 11:10 (编辑于 2023-1-15 11:10)
1min目标场景问卷 立即参与
回答问题
悬赏:13 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
zsh331Lv8专家互助
发布于2023-1-15 12:11

-- 根据传递的参数值判断后-SQL执行逻辑就应该是这个部分,没有问题。第二个if不满足,执行else条件!

————————————————

image.png

  • sc9527 sc9527(提问者) 照理应该满足条件才对,为啥会判断成else ,能解释下吗
    2023-01-15 12:26 
  • zsh331 zsh331 回复 sc9527(提问者) and(0+1=7,6+1=6)这个公式我已经给你成明文了,这个条件你觉得满足吗?
    2023-01-15 12:27 
  • sc9527 sc9527(提问者) 回复 zsh331 为何我单独执行 weekday(\'2023-01-01\')会等于6??? 如果我要实现这个效果该如何调整尼??
    2023-01-15 12:37 
  • zsh331 zsh331 回复 sc9527(提问者) https://help.fanruan.com/finereport/doc-view-819.html#51,weekday是帆软内置的函数,文档有解释,这个逻辑不是按照数据库函数执行的返回值!
    2023-01-15 12:44 
  • sc9527 sc9527(提问者) 回复 zsh331 明白了,感谢
    2023-01-15 12:55 
  • 2关注人数
  • 512浏览人数
  • 最后回答于:2023-1-15 12:11
    请选择关闭问题的原因
    确定 取消
    返回顶部