找文章 / 找答案
精选问答 更多内容

[大数据] 永洪desktop新建计算列用两个以上else报错

Cynthia_chen铂金二 显示全部楼层 发表于 2022-6-15 11:18:57 |阅读模式 打印 上一主题 下一主题
请专家帮忙看看,yonghong desktop在新建计算列时,写的时候没有问题,但运行的时候出错。我试着删除其中一个else的时候就不出错。在企业版(网页)的永洪同样这样写不出错。 截图20220615111054751.jpg
报错信息:
Related Query: '新老联合20220614232357-1654'   Run user: 'admin' Caused by: java.sql.SQLException   执行SQL失败:“VooltDB exception, code: 44, host: 127.0.0.1, port: 8749;  DB::Exception: Argument at index 2 for function transform must be constant: while executing 'FUNCTION caseWithExpression(LONG_COL_28 : 26, '01' :: 76, caseWithExpression(LONG_COL_53, '1', 'A', 'B') :: 309, LONG_COL_27 : 25) -> caseWithExpression(LONG_COL_28, '01', caseWithExpression(LONG_COL_53, '1', 'A', 'B'), LONG_COL_27) Nullable(String) : 290' (version 21.3.5.42)”

最佳答案

永洪vip
Fiona 关注Ta

2022-06-15 11:18:58

您先用if函数吧 大概类似: if col['市场级别'] == "一级市场" then (if col['省份'] == "湖北" then "a" else "b" end) else "c" end case when应该是有问题,但是后面修复了
查看完整内容
回复

使用道具 举报

精彩评论6

Fiona 显示全部楼层 发表于 2022-6-15 11:18:58
您先用if函数吧
大概类似:
if col['市场级别'] == "一级市场"
then (if col['省份'] == "湖北" then "a" else "b" end)
else "c"
end

case when应该是有问题,但是后面修复了
回复

使用道具 举报

yhdata_bear 显示全部楼层 发表于 2022-6-15 11:36:40
这个报错的意思是说数据集市错误
回复

使用道具 举报

Cynthia_chen铂金二 显示全部楼层 发表于 2022-6-15 14:33:22
yhdata_bear 发表于 2022-6-15 11:36
这个报错的意思是说数据集市错误

确实和入了集市有关,then后面加了case when后,如果整个语句中有两个以上else就会报错。那请问要怎么处理呢?
回复

使用道具 举报

Fiona 显示全部楼层 发表于 2022-6-15 14:48:53
稍等 看一下
回复

使用道具 举报

Cynthia_chen铂金二 显示全部楼层 发表于 2022-6-15 15:25:25
Fiona 发表于 2022-6-15 15:07
您先用if函数吧
大概类似:
if col['市场级别'] == "一级市场"

好的,谢谢你的建议,我减少了case when ,只保留一个case when,其他用if函数代替就好了。不过有一些单个条件需求,用case when还是方便一点。感谢你的耐心解答及举例哈。
回复

使用道具 举报

yhdata_bear 显示全部楼层 发表于 2022-6-15 15:34:22

回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部