我可以通过以下方式转换下面的插入,使其可以处理子查询返回多于1行的情况吗?只需要第一个值。
insert into mytable (column1,column2) values ('value1', select value from mytable2 where columnX='ABC')
任何想法也可以在oracle中获得它吗?
在Oracle中,可以使用具有insert ... values语法的标量子查询。对于您的示例,您需要定义“第一个值”,然后编写一个仅返回该值的查询。
如果是最小值:
insert into mytable (column1,column2) values (9, (select min(value) from mytable2 where columnX = 'ABC'));
如果它是具有最低ID的值(假设您的表有一个ID字段):
insert into mytable (column1,column2) values (9,
(select value
from (select value,
row_number() over (order by id) rn
from mytable2
where columnX = 'ABC')
where rn = 1));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句