考虑这个表:
CREATE TABLE t (i int, j int, ...);
我想将一组数据插入到表中SELECT
声明。我的查询的简化版本是:
INSERT INTO t VALUES ((SELECT 1), (SELECT 2), ...);
真正的查询可能要复杂得多,并且各个子查询是独立的。不幸的是,这个标准 SQL 语句(适用于 SQL Server)不适用于 SQL 数据仓库。出现以下错误:
执行查询失败。错误:插入值语句只能包含常量文字值或变量引用。
有办法解决这个问题吗?
似乎有一些限制INSERT .. VALUES
SQL 数据仓库的语句,但没有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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)