将具有不同值的多行插入表中

时间:2020-08-03 11:40:48

标签: sql sql-server

我相信我的问题很简单,但在搜索时还没有找到类似的东西。 我想插入测试多个行的表中,例如:

('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,那就更好了。 预先感谢。

1 个答案:

答案 0 :(得分:3)

我不确定它是否更简单,但是您可以将insert . . . selectvalues()子句用于第三列:

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', . . . );
相关问题