gpt4 book ai didi

sql INSERT 条件作为选择语句?

转载 作者:可可西里 更新时间:2023-11-01 16:24:30 24 4
gpt4 key购买 nike

我正在尝试用 HIVE sql 填充一个表。这里的两个表都有相同的列,但我只关心 tableSource 中尚未在 tableDest 中的行。

表中的行有一个索引字段recordId(不是主要的)。我想添加 tableSource 中 recordId 大于 tableDest 中最高 recordId 的所有行。

我有一个基本的命令结构,但我认为它的语法不正确?

INSERT INTO tableDest
SELECT * FROM tableSource
WHERE tableSource.recordId >
(SELECT MAX(recordId) FROM tableDest);

我只想将最后一个 select 语句的值用于条件。

我试过使用变量但没有成功:

SET highest_record =SELECT MAX(recordId) FROM tableDest;
INSERT INTO tableDest
SELECT * FROM tableSource
WHERE tableSource.recordId > ${hiveconf:highest_record};

最佳答案

not exists 是最好的选择。

INSERT INTO tableDest
SELECT *
FROM tableSource s
WHERE NOT EXISTS (SELECT 1
FROM tableDest d
WHERE s.recordId=d.recordId)

关于sql INSERT 条件作为选择语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49433672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com