sql()函数写法

sql("ZYD_DM","select distinct usr.USER_COMPANY from ZYDDM.FR_MOBILE_USER_POWER usr WHERE ${if(usr.USER_COMPANY is null,"1","USR.USER_NO='"+$fr_username+"'")"},1,1)

公式检查有错误,是哪里的问题?

这里判断用户名后出来的usr.USER_COMPANY有部分为空,为空这里假设给1,其他有数据就按实际usr.USER_COMPANY出。

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

解释一下呢  没看懂逻辑 后面判断了啥 不知道咋改

--------

sql("ZYD_DM","select distinct usr.USER_COMPANY from ZYDDM.FR_MOBILE_USER_POWER usr WHERE (CASE WHEN Iusr.USER_COMPANY IS NULL THEN '1' ELSE usr.USER_COMPANY END)='"+$fr_username+"'",1,1)

  • i123 i123(提问者) 已完善 我觉得这里应该是if判断的问题
    2023-01-10 11:40 
  • Z4u3z1 Z4u3z1 回复 i123(提问者) SqlServer?oracle?
    2023-01-10 11:41 
  • Z4u3z1 Z4u3z1 回复 i123(提问者) 上面补充了 你试试
    2023-01-10 11:44 
  • i123 i123(提问者) 回复 Z4u3z1 sql(\"ZYD_DM\",\"select distinct usr.USER_COMPANY from ZYDDM.FR_MOBILE_USER_POWER usr WHERE (CASE WHEN usr.USER_COMPANY IS NULL THEN usr.USER_CONTRACT=\'AH10\' ELSE usr.USER_COMPANY END)=\'\"+$fr_username+\"\'\",1,1) 我替换了1的条件,改成这样,但是好像不行。是哪里原因?
    2023-01-10 11:55 
  • Z4u3z1 Z4u3z1 回复 i123(提问者) 我没看懂你这个SQL呢~~完全不符合语法了啊
    2023-01-10 12:00 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-1-10 11:41

正常是sql("ZYD_DM","select distinct usr.USER_COMPANY from ZYDDM.FR_MOBILE_USER_POWER usr WHERE" +if(usr.USER_COMPANY is null,"","USR.USER_NO='"+$fr_username+"'"),1,1)

但是你的if判断肯定有问题,需要再嵌套sql函数查询出控制判断

  • i123 i123(提问者) sql(\"ZYD_DM\",\"select distinct usr.USER_COMPANY from ZYDDM.FR_MOBILE_USER_POWER usr WHERE USR.USER_NO=\'\"+$fr_username+\"\'\",1,1 ) 最初是先判断这个条件,但是会出现usr.USER_COMPANY为空情况,所以加个if判断,那么如果是这样要怎么改?是我上面那样改法吗?
    2023-01-10 11:48 
  • 1关注人数
  • 350浏览人数
  • 最后回答于:2023-1-10 11:43
    请选择关闭问题的原因
    确定 取消
    返回顶部