gpt4 book ai didi

postgresql - 在 POSTGRESQL 中使用带有 INSERT 语句的 WITH 子句

转载 作者:行者123 更新时间:2023-11-29 11:26:56 24 4
gpt4 key购买 nike

我有一个需求,我需要从另一个表中获取一列并将该列数据与其他一些数据插入到另一个表中。

例子:

如果 cust_id='11',那么我需要从 cust 表中获取 cust_code(假设它返回 cust_code='ABCD'),然后使用该 cust_code 和一些其他数据插入到 table_1 中,如下所示:

WITH get_cust_code_for_cust_id AS (
SELECT cust_code FROM cust WHERE cust_id=11
)

INSERT INTO public.table_1(
cust_code, issue, status, created_on)
VALUES (SELECT cust_code FROM get_cust_code_for_cust_id, 'New Issue', 'Open', current_timestamp)

但是这个查询不起作用,因为我们还没有调用 get_cust_code_for_cust_id 查询。

我的偏好是一些带有 WITH 子句的查询,但也将不胜感激任何其他答案。

最佳答案

如果 insert 语句的来源是 select,请不要使用 VALUES 关键字。

WITH get_cust_code_for_cust_id AS (
SELECT cust_code
FROM cust
WHERE cust_id=11
)
INSERT INTO public.table_1 (cust_code, issue, status, created_on)
SELECT cust_code, 'New Issue', 'Open', current_timestamp
FROM get_cust_code_for_cust_id;

虽然你真的不需要 CTE:

INSERT INTO public.table_1 (cust_code, issue, status, created_on)
SELECT cust_code, 'New Issue', 'Open', current_timestamp
FROM cust
WHERE cust_id=11

关于postgresql - 在 POSTGRESQL 中使用带有 INSERT 语句的 WITH 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50364904/

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