sql问题(orcale)

求教大神:当前年减去A列得到值,怎么根据得到的值去B表比对区间返回对应区间的分值(分值X列永远是≥,Y列永远是<,但要包括有空的值);

可以把B表的X,Y当做区间    X≤A表值<Y   (1≤A表值<3)

图片.png

用户kWEye3931 发布于 2021-3-18 11:13 (编辑于 2021-3-18 14:54)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-3-18 13:28(编辑于 2021-3-18 14:43)

SQL的不等式关联,一般的SQL都支持,Hive除外;

————————————

参考语法:

select a.*,b.z from a left join b on a.zhi >= b.x and a.zhi<b.y

————————————

更新:

select a.*,b.z from a left join b on a.zhi >= b.x and case when b.y is null then '1=1' else a.zhi<b.y end

  • 用户kWEye3931 用户kWEye3931(提问者) 按照这种语法,虽然能求出来,但还会出现另一个问题,x为0,y为null,比如2021-2021=0,会求不出结果;或者2021-2009=12,同样得不出结果
    2021-03-18 14:39 
  • zsh331 zsh331 回复 用户kWEye3931(提问者) 再判断一下即可~
    2021-03-18 14:43 
最佳回答
0
Edward_DDLv5中级互助
发布于2021-3-18 12:04

看你的结果对应的分值是否是整数倍,比如除以10得到分数,那就整除,如果不是,那就用case when

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