是否可以在sql中使用insert插入多个值
Posted
技术标签:
【中文标题】是否可以在sql中使用insert插入多个值【英文标题】:Is it possible to insert multiple values using insert in sql 【发布时间】:2021-06-14 13:59:02 【问题描述】:是否可以在一个查询中将多个值插入到表中? .
我已经声明了这张桌子
declare global temporary table CFVariables
(
CF varchar(255)
)
with replace ;
然后我将值插入到表中
INSERT INTO qtemp.CFVariables ( CF ) VALUES
('F01' ), ('T01' ), ('U01' ), ('CIP' ), ('L01' )
是否可以不以这种方式在 qtemp.CFVariables 表中插入值?但像 In ('F01' , 'T01' , 'U01' , 'CIP' , 'L01' )
然后,我宣布了我的第二张桌子:
declare global temporary table xVariables
(
CFC numeric(3),
CF varchar(255)
)
with replace ;
在这部分中,我在插入表格时遇到问题 xVariables
我试图用它来插入多个值
INSERT INTO qtemp.xVariables ( CFC, CF ) VALUES
( 1, (select CF from qtemp.CFVariables ))
我的查询字段,因为我要向表中插入多于一行。 我怎样才能做到这一点?
【问题讨论】:
我正在使用 IBM Db2 【参考方案1】:试试
INSERT INTO qtemp.xVariables ( CFC, CF ) SELECT 1 AS CFC,CF from qtemp.CFVariables;
【讨论】:
是否可以不以这种方式在 qtemp.CFVariables 表中插入值?但就像在 ('F01' , 'T01' , 'U01' , 'CIP' , 'L01' ) 在 VALUES 子句之后? INSERT INTO qtemp.CFVariables (CF) CF IN (('F01','T01','U01','CIP','L01')的值 你看我们的答案了吗,没有 VALUES 子句......只需在答案中给出的查询末尾添加 WHERE 子句。 我已经更新了我的问题,我试图将 qtemp.CFVariables 表的插入部分更改为更像一个列表 IN ( ('F01' , 'T01' , 'U01' ,'CIP' , 'L01')【参考方案2】:尝试运行插入选择:
INSERT INTO qtemp.xVariables ( CFC, CF )
select 1, CF from qtemp.CFVariables
要限制要插入的记录,您需要执行以下操作:
INSERT INTO qtemp.xVariables ( CFC, CF )
select 1, CF
from qtemp.CFVariables
where CF in ('F01' , 'T01' , 'U01' , 'CIP' , 'L01' )
【讨论】:
是否可以不以这种方式在 qtemp.CFVariables 表中插入值?但就像在 ('F01' , 'T01' , 'U01' , 'CIP' , 'L01' ) @Kakoo16 请详细说明。根据您的要求,在我看来,这个答案的插入方式很好,但是您希望将要插入的记录集限制到列出的项目中。我理解你的准确吗? 是的!是的,我想限制要插入到列出的项目的记录集以上是关于是否可以在sql中使用insert插入多个值的主要内容,如果未能解决你的问题,请参考以下文章
SQL基础教程(第2版)第4章 数据更新:4-1 数据的插入(INSERT)
mysql中insert与select的嵌套使用解决组合字段插入问题