如何解决SQL Select - 如果该值出现在另一个表中,则进行标记
更新:有谁知道如何在 Pyspark 中做到这一点?
尝试完成 SPARK SQL 查询。我有两个表,需要创建一个列来标记 a.id 中的值是否出现在 b.id 中。
[ID][说明]
112 毫米
121 神经网络
123 DD
表 b:
[ID][动作]
112A
112 B
112℃
131A
SELECT a.ID,CASE WHEN a.ID IN (SELECT b.ID FROM b) THEN 'appear'
ELSE 'no'
END AS Flag
FROM a
解决方法
试试这个。轻一点。
SELECT a.ID,ISNULL((
SELECT 'appear'
FROM b
WHERE a.ID = b.ID
),'no'
) AS Flag
FROM a;
这是使用 OUTER APPLY 回答同一问题的另一种方法。
SELECT a.ID,CASE
WHEN hc.HitCount > 0 THEN 'appear'
ELSE 'no'
END AS Flag
FROM a
OUTER APPLY (
SELECT COUNT(1) AS HitCount
FROM b
WHERE a.ID = b.ID
) AS hc;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。