请选择 进入手机版 | 继续访问电脑版
yhdata_oVt0nqNM青铜一
2025-3-24 11:22:29 发布在问答
新建计算列中case when的用法
本帖最后由 yhdata_oVt0nqNM 于 2025-3-24 11:30 编辑

数据集有A B C D E等字段,需要新增一个计算列,此计算列需要根据A B 两个字段的大小来得出,目前如下写法不可以,请问应该用什么语法
case
when (col['字段A']>=100 or col['字段B'] >=100) then 'A'
when ((col['字段A']>=50 and col['字段A']<100) or (col['字段B']>=50 and col['字段B']<100)) then 'B'
when ((col['字段A']>=1 and col['字段A']<50) or (col['字段B']>=1 and col['字段B']<50)) then 'C'
when (col['字段A']<1 or col['字段B']<1) then 'D'
ELSE 'E'
END AS '类型'

参考文档似乎只是对一个字段的判断,没太看懂该如何使用
目前提示:

182
7
精彩评论7
卡拉米米哇铂金二
发表于 2025-3-24 11:28:46 显示全部楼层
你这个case when看着没问题,不可以是数据不对?
回复

使用道具 2#

yhdata_oVt0nqNM青铜一 回复卡拉米米哇铂金二
发表于 2025-03-24 11:33:58
不是,保存提交的信息我截图了,这里的用法看着是在case后面跟表达式,when后面跟和表达式比对的信息,但是这样多字段就没法写了
回复

卡拉米米哇铂金二 回复yhdata_oVt0nqNM青铜一
发表于 2025-03-24 11:35:38
要不你写数据集里呢?
回复

yhdata_oVt0nqNM青铜一 回复卡拉米米哇铂金二
发表于 2025-03-24 13:34:11
我目前是用的组合数据集,A B 两个字段来自于两个数据集,目前想法是能够尽量在前台组合解决,这样使用起来更灵活,如果能支持这样使用的话是最好,不行再考虑去调整数据集
回复

阿姆斯特朗炮铂金四
发表于 2025-3-24 11:57:40 显示全部楼层
你这写法,在sql中是没有任何问题的,但是他这个函数的解释和你写的不对,他是case后面是跟列,然后when 值,估计他和sql中的写法不一样吧,你换个方式试试吧
回复

使用道具 3#

yhdata_oVt0nqNM青铜一 回复阿姆斯特朗炮铂金四
发表于 2025-03-24 13:35:07
是的,但是我不太清楚case when在永洪里面是不是只支持他举例的这个用法
回复

yhdata_lyaa
发表于 2025-3-24 14:13:21 显示全部楼层
如果计算列的计算类型是基础函数的话,试试写if呢,如果计算类型是SQL语句的话,可以用case when


回复

使用道具 4#

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

  • 官方微信

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

    扫码关注
  • 新浪微博

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

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

用户等你来哦

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