当前位置: 首页 > 面试题库 >

使用SELECT执行INSERT以插入多个记录

傅朝
2023-03-14
问题内容

在下图中,“ DodgyOldTable”和“MainTable”之间存在1:1的关系。表“选项”包含在“选项描述”字段中具有“选项Val1”,“选项Val2”和“选项Val3”的记录。我需要从DodgyOldTable中选择一个插入MainTable_Option中。像这样的东西:

INSERT MainTable_Option ([MainTableID],[OptionID])
SELECT ID, (CASE WHEN OptionVal1 = 'y' THEN 
    (SELECT OptionID 
     FROM Option 
     WHERE OptionDesc = 'OptionVal1') END
FROM DodgyOldTable

如果可能的话,我想避免使用几个不同的select语句来执行插入操作。

替代文字http://www.freeimagehosting.net/uploads/863f10bf5f.jpg


问题答案:

INSERT
MainTable_Option
(
MainTableID,
OptionID
)
SELECT
d.ID,
o.OptionId
FROM
DodgyOldTable d
INNER JOIN Option o ON
(d.OptionVal1 = ‘Y’ AND o.OptionDesc = ‘OptionVal1’) OR
(d.OptionVal2 = ‘Y’ AND o.OptionDesc = ‘OptionVal2’) OR
(d.OptionVal3 = ‘Y’ AND o.OptionDesc = ‘OptionVal3’)




 类似资料:
  • 本章提供了有关如何使用JDBC应用程序在表中插入记录的示例。 在执行以下示例之前,请确保您已满足以下条件 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the packages:要求包含包含数据库编程所需的JDBC类

  • 我将一行一行地插入数据,但我在某处听说,如果有许多数据要插入,则需要很多时间。那么,如何一次将它们全部插入?

  • 问题内容: 是否可以使用一个insert语句在一个表中插入多行?我知道如果发生以下情况,将会发生这种情况: 但是,如果我想插入: 只需一个插入命令? 问题答案: 两种解决方案(来源:http : //appsfr.free.fr/spip.php?article21): 或者

  • 问题内容: 我有一个需要插入多个记录的场景。我有一个表结构,如id(其他表中的fk),key(char),value(char)。需要保存的输入将是上述数据的数组。示例:我有一些数组对象,例如: 在MS SQL中,我将创建并传递TVP。我不知道如何在postgres中实现。所以现在我要做的是使用pg- promise库将列表中的所有项目保存在postgres sql中的单个查询中。我找不到任何文档

  • 本文向大家介绍MySQL INSERT INTO SELECT导致从另一张表一次插入多行,包括了MySQL INSERT INTO SELECT导致从另一张表一次插入多行的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是创建第二个表的查询。 以下是执行INSERT INTO SEL

  • 问题内容: 有没有办法一次插入多个记录而不是一次插入? 我有一个非常丑陋的耙子任务,正在做以下事情… 这必须非常低效,并且必须有更好的方法… 问题答案: 该方法也将数组作为参数。 但是,它仍然对每个条目执行一个SQL查询,而不是单个SQL查询。它效率更高,因为它只需要在后台创建一个activerecord对象。 如果要同时从同一客户端插入许多行,请使用带有多个VALUES列表的INSERT语句一次