gpt4 book ai didi

sql - 插入值语句只能包含 SQL 数据仓库中的常量文字值或变量引用

转载 作者:行者123 更新时间:2023-12-03 23:29:53 24 4
gpt4 key购买 nike

考虑这个表:

CREATE TABLE t (i int, j int, ...);

我想将一组 SELECT 语句中的数据插入到表中。我的查询的简化版本是:

INSERT INTO t VALUES ((SELECT 1), (SELECT 2), ...);

真正的查询可能要复杂得多,并且各个子查询是独立的。不幸的是,这个标准 SQL 语句(适用于 SQL Server)不适用于 SQL 数据仓库。出现以下错误:

Failed to execute query. Error: Insert values statement can contain only constant literal values or variable references.

有办法解决这个问题吗?

最佳答案

看来 SQL 数据仓库的 INSERT .. VALUES 语句有一些限制,但 INSERT .. SELECT 则没有。请求的查询可以重写为:

INSERT INTO t SELECT (SELECT 1), (SELECT 2);

此解决方法在插入多行时也很有用:

-- Doesn't work:
INSERT INTO t VALUES ((SELECT 1), 2), ((SELECT 2), 3), ...;

-- Works:
INSERT INTO t SELECT (SELECT 1), 2 UNION ALL SELECT (SELECT 2), 3;

关于sql - 插入值语句只能包含 SQL 数据仓库中的常量文字值或变量引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50530621/

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