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

Snowflake中基于两个数据集实现ID存在标识的CTE编写问题

Snowflake ID存在性标识CTE编写方案

前提说明

现有两张数据表:

  • DF1表:包含ID、value两个字段
  • DF2表:包含ID、content两个字段
    需求为给DF1新增id_exist字段,ID在DF2中存在则赋值为1,不存在则赋值为0。

实现代码

WITH result AS (
    SELECT 
        a.ID,
        a.value,
        CASE WHEN b.ID IS NOT NULL THEN 1 ELSE 0 END AS id_exist
    FROM DF1 a
    LEFT JOIN DF2 b 
        ON a.ID = b.ID
)
SELECT * FROM result;

输出结果

执行后返回结果如下:

IDvalueid_exist
001A0
002A1
003B1
004C0

补充说明

如果需要用模拟数据测试逻辑,可以直接运行以下完整代码:

WITH 
-- 模拟DF1数据
DF1 AS (
    SELECT '001' ID, 'A' value UNION ALL
    SELECT '002' ID, 'A' value UNION ALL
    SELECT '003' ID, 'B' value UNION ALL
    SELECT '004' ID, 'C' value
),
-- 模拟DF2数据
DF2 AS (
    SELECT '002' ID, 'walter' content UNION ALL
    SELECT '003' ID, 'hank' content
),
result AS (
    SELECT 
        a.ID,
        a.value,
        CASE WHEN b.ID IS NOT NULL THEN 1 ELSE 0 END AS id_exist
    FROM DF1 a
    LEFT JOIN DF2 b ON a.ID = b.ID
)
SELECT * FROM result;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:04