我相信我的问题很简单,但在搜索时还没有找到类似的东西。 我想插入测试多个行的表中,例如:
('03','ENG','203') ('03','ENG','403') ('03','ENG','155') ('03','ENG','222') ('03','ENG','456') ('03','ENG','111') ...
代替写作
insert into testing
values('03','ENG','203')
,('03','ENG','403')
,('03','ENG','403')
,('03','ENG','155')
,('03','ENG','222')
,('03','ENG','456')
,('03','ENG','111')
..
有没有更快的方法来写类似的东西
insert into testing
select ('03','ENG',x)
where x in ('203',...)
如果我不必使用动态sql,那就更好了。 预先感谢。
答案 0 :(得分:3)
我不确定它是否更简单,但是您可以将insert . . . select
与values()
子句用于第三列:
insert into testing
select '03', 'ENG', col3
from (values ('203'), ('403'), ('155'), . . .
) v(col3);
如果表中有column3的列表,并且没有重复项,则可以使用:
insert into testing
select '03', 'ENG', t.col3
from column3_table t
where t.column3 in ('203', '403', '155', . . . );