sql - 将具有一个不同值的多行插入表中
问题描述
我相信我的问题有点简单,但我在搜索时没有找到类似的东西。我想插入测试多行的表中,例如:
('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就更好了。提前致谢。
解决方案
我不确定它是否更简单,但您可以在第三列中使用子句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', . . . );
推荐阅读
- python - 如何绘制从不同列获取值的 Matplotlib 图表
- javascript - 有没有办法延迟 window.onload 事件?
- excel - 在现有图表 vba 中更新或覆盖
- c++ - C++ 在构造函数中初始化自定义类型
- android - Delphi Android READ_PHONE_STATE 未触发
- java - 登录和登录与改造
- byte-buddy - 当只有一个这样的方法时,为什么 ByteBuddy 告诉我在我的拦截器方法中存在歧义?
- r - 有没有办法在 R 中绘制伊朗各省的边界?
- javascript - 用开始和结束组件替换开始和结束文本
- r - 如何为闪亮的应用程序使用 plotmeans 或 geom_errorbar