是否可以在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插入多个值的主要内容,如果未能解决你的问题,请参考以下文章

使用T-SQL语句操作数据表-插入数据

SQL基础教程(第2版)第4章 数据更新:4-1 数据的插入(INSERT)

mysql中insert与select的嵌套使用解决组合字段插入问题

Mybatis执行sql(insertupdatedelete)返回值问题

SQL——插入数据

使用 Oracle Insert Into...Values 插入多个值