You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中按特定条件连接两表实现Person_id加1匹配

Snowflake 偏移规则两表关联实现方案

核心实现逻辑

关联规则是B表Person_id比A表对应行大1,不需要提前做字段预处理,直接在JOIN的ON条件中写入偏移匹配规则即可。

可直接运行的SQL代码

SELECT
  A.Person_id,
  A.Name,
  B.Hourly
FROM A
-- 用LEFT JOIN保证A表所有行都保留,匹配不到的Hourly返回NULL
LEFT JOIN B
  ON B.Person_id = A.Person_id + 1;

样例数据匹配验证

对应提供的测试数据,执行后匹配逻辑完全符合预期:

  • A表Person_id=0(John)→ 匹配B表Person_id=1 → Hourly=20
  • A表Person_id=1(Patel)→ 匹配B表Person_id=2 → Hourly=30
  • A表Person_id=2(Aaron)→ 匹配B表Person_id=3 → Hourly=25
    输出结果和期望结构完全一致。

注意事项

  • 如果能确认A表所有行的Person_id + 1都能在B表找到对应记录,也可以把LEFT JOIN替换为INNER JOIN,查询效率会略高。
  • 不要把B.Person_id = A.Person_id + 1这个条件写到WHERE子句中,否则会导致LEFT JOIN退化为INNER JOIN,丢失A表中未匹配到B表的记录。

内容的提问来源于stack exchange,提问作者CasperCodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:18:27