【发布时间】:2015-08-15 23:35:51
【问题描述】:
我有一个返回 ora-01427 错误的 SQL 请求:
单行子查询返回多行
INSERT INTO my_table (value0, value1, value2, value3)
VALUES((SELECT MAX(value0) FROM my_table), '5', (SELECT DISTINCT(value2) FROM another_table), '8');
问题是,我需要两个硬编码值,我需要一个只返回一行的选择值,我想对第二个选择返回的每一行执行此操作。
我觉得如果我只有一个选择,这个查询就可以工作。有没有办法在 INSERT 中执行多个 SELECT ?语法是什么?
编辑:my_table 和 some_table 实际上是同一张表,很抱歉一开始不清楚,实际上,我需要 value0 是唯一的,所以它需要每次都检索最大的 id,不仅仅是在插入之前,而是每次插入新行的时间。
【问题讨论】:
-
这是第二个返回多行的子选择。请插入 ... 选择。
标签: sql oracle oracle-sqldeveloper sql-insert insert-select