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

如何在Presto中使用ANSI SQL从给定输入列表获取不存在的记录

在Presto中筛选给定输入里不存在的记录

针对你需要从指定输入值列表中找出country表中不存在的country_code的需求,这里提供两种和你Oracle实现逻辑对齐的Presto解决方案:

方法1:使用VALUES构造临时集 + NOT EXISTS

这种方式和你给出的Oracle代码逻辑最接近,直接构造输入值的临时数据集,再通过子查询判断存在性:

SELECT input.country_code
FROM (
    VALUES 
        ('AU'), ('IN'), ('ZA'), ('DK'), ('CH'), ('NL')
) AS input(country_code)
WHERE NOT EXISTS (
    SELECT 1
    FROM country c
    WHERE c.country_code = input.country_code
);

方法2:使用LEFT JOIN + IS NULL判断

通过左连接后筛选无匹配的记录,也是Presto中常用的写法:

SELECT input.country_code
FROM (
    VALUES 
        ('AU'), ('IN'), ('ZA'), ('DK'), ('CH'), ('NL')
) AS input(country_code)
LEFT JOIN country c ON c.country_code = input.country_code
WHERE c.country_code IS NULL;

如果输入值较多或者需要重复使用,你也可以先把这些值存入临时表,再执行上述的查询逻辑,效果是一样的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:03:21