帮忙解答下下面这个是什么意思?

CASE 

WHEN  ${if(len(PP)==0,"''",'1')} IS NOT NULL THEN A.PPXSZB

WHEN  ${if(len(ZL)==0,"''",'1')} IS NOT NULL THEN A.CPTJDLXSZB ELSE A.CPTJDLXSZB END 

FineReport i123 发布于 2021-5-27 16:27 (编辑于 2021-5-27 16:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-5-27 16:48(编辑于 2021-5-28 17:30)

如果这是SQL SERVER 的语句,后面这一截WHEN  ${if(len(ZL)==0,"''",'1')} IS NOT NULL THEN A.CPTJDLXSZB ELSE A.CPTJDLXSZB END 都不会执行,因为不管是''还1都不会判断为NULL

image.png

翻译成SQL SERVER

image.png

image.png

  • i123 i123(提问者) 能否说得更详细些?没有理解
    2021-05-28 16:48 
  • Z4u3z1 Z4u3z1 回复 i123(提问者) 等一下给你画图
    2021-05-28 16:49 
  • 用户a8068717 用户a8068717 回复 Z4u3z1 请问这个逻辑图咋画的?
    2021-05-30 10:09 
  • Z4u3z1 Z4u3z1 回复 用户a8068717 EXCEL.............
    2021-05-31 08:50 
最佳回答
0
LitleBaiLv5初级互助
发布于2021-5-27 16:30

先判断参数是不是为空, 为空赋空值, 不为空赋值1,    然后判断前面为空值时,赋值A.CPTJDLXSZB, 不为空则赋值A.CPTJDLXSZB

  • i123 i123(提问者) 这里有参数ZL和PP,请问先判断ZL还是PP
    2021-05-27 16:33 
  • IceBall09 IceBall09 回复 i123(提问者) 先pp
    2021-05-27 16:37 
  • LitleBai LitleBai 回复 i123(提问者) 兄弟, 我刚刚想了一下, 你这段case 不是恒为A.PPXSZB嘛, 因为第一个条件是恒成立的呀, 不管你参数是不是为空, 公式得出的结果都不是null
    2021-05-27 17:05 
  • i123 i123(提问者) 回复 LitleBai 能否说得更详细些?没有理解
    2021-05-28 16:47 
  • LitleBai LitleBai 回复 i123(提问者) WHEN ${if(len(PP)==0,\"\'\'\",\'1\')} IS NOT NULL THEN A.PPXSZB 这一段是很成立的 ,因为 ${if(len(PP)==0,\"\'\'\",\'1\')} 这个永远不为null, 所以你段代码, 永远返回的是A.PPXSZB
    2021-05-28 16:59 
最佳回答
0
jongwangLv6中级互助
发布于2021-5-27 16:38

参数PP 有值 则  查 字段PPXSZB

参数PP 无值 且 ZL 有值  则 查字段CPTJDLXSZB

参数PP Zl 都无值 则 查字段CPTJDLXSZB

  • 3关注人数
  • 460浏览人数
  • 最后回答于:2021-5-28 17:30
    请选择关闭问题的原因
    确定 取消
    返回顶部