js调用FR.remoteEvaluate(sql(公式))

var d = FR.remoteEvaluate('=sql("mysql","SELECT distinct max(substr(p_code,3,2)) from bi_project_details ",1,1)');

sql()公式中加上了substr()函数就会卡死但是在本地测试就不会,排查了不是jar包的问题,l两个函数使用就卡死,一个函数就没问题image.png

tangdage 发布于 2020-8-13 09:47 (编辑于 2020-8-13 11:20)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
luojian0323Lv7资深互助
发布于2020-8-13 10:00

你看下sql在数据库中执行会不会有警告之类的。

最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2020-8-13 10:02

反正要最大的那一个,那就别用max(),直接order by desc, 就会取最大的那一个了

  • tangdage tangdage(提问者) 截取字符串的函数好像就有问题
    2020-08-13 10:06 
  • 就TM你叫夏洛啊 就TM你叫夏洛啊 回复 tangdage(提问者) 你不是说max()和substr()一起用就报错吗,那就不用max(),也会报错吗
    2020-08-13 10:33 
  • tangdage tangdage(提问者) 回复 就TM你叫夏洛啊 刚刚我测试了,用截取的函数就用问题,也不知道他们设置了什么
    2020-08-13 10:36 
  • 就TM你叫夏洛啊 就TM你叫夏洛啊 回复 tangdage(提问者) 那你就把截取后的值放入单元格,js直接取单元格的值。比如A1单元格插入公式取截取的值。还有你这个报错是数据库连接不上,前面的库名是“mysql”吗。不是指数据库类型,是指bi_project_detail库名
    2020-08-13 15:12 
  • tangdage tangdage(提问者) 回复 就TM你叫夏洛啊 mysql是设计器定义的数据连接名
    2020-08-13 15:20 
最佳回答
0
jongwangLv6中级互助
发布于2020-8-13 10:19

不太清楚不过发现一个小问题:

直接用max字符串感觉逻辑上有时候会有问题(比如,9就是比10大了)

var d = FR.remoteEvaluate('=sql("mysql","SELECT distinct max(substr(p_code,3,2)*1) from bi_project_details ",1,1)')

可以参考上面的内容或者to_number()什么的

最佳回答
0
snrtuemcLv8专家互助
发布于2021-3-6 10:14

你这个反正和参数没关系,你直接在数据库把SELECT distinct max(substr(p_code,3,2)) from bi_project_details做成一个视图V_bi_project_details

然后,js直接取视图,不就不会卡了吗。。

var d = FR.remoteEvaluate('=sql("mysql","SELECT * from V_bi_project_details ",1,1)');

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