$IF的写法问题

有一个参数MNG,一个字段manage,如果len(manage)=5,则让MNG为86;

如果len(manage)=7,则截取MNG的前4位并传参给manage。

该怎么写?

FineReport yzmWJ6r72419960 发布于 2022-8-22 09:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于2022-8-22 09:43

where 1=1

${if(len(manage)=7," and manage='86'"," and manage="+left(MNG,4))}

  • qiqits1984 qiqits1984 len(manage)=6 这个也 截取MNG的前4位了!
    2022-08-23 08:21 
  • snrtuemc snrtuemc 回复 qiqits1984 那就多个if判断了0 , where 1=1 ${if(len(manage)=5,\" and manage=\'86\'\",if(len(manage)=7,\" and manage=\"+left(MNG,4),\" and manage=\"+MNG))},注意,评论会在引号前加斜杆,自己删除
    2022-08-23 08:45 
最佳回答
1
weibwLv7高级互助
发布于2022-8-22 10:05

为啥非要用IF啊,用Switch也可以的

${SWITCH(len(manage),5," and manage='86'",7,"and manage="+left(MNG,4))}

最佳回答
0
lishengtaoLv3初级互助
发布于2022-8-22 09:45

这种字段要放到IF里而且要做多个判断的,不适合放到IF里面,放到外面也可以,更方便

and manage = case when length(manage) = 5 then 86 when length(manage) = 7 then '${LEFT(MNG,4)}' end

  • 2关注人数
  • 437浏览人数
  • 最后回答于:2022-8-22 10:05
    请选择关闭问题的原因
    确定 取消
    返回顶部