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

将多个选择语句作为值插入表中

韶兴德
2023-03-14
问题内容

是否可以在SQL Server中执行以下操作:

INSERT INTO MyTable (Col1,Col2,Col3,Col4,Col5,Col6,Col7) VALUES

SELECT Col1 FROM Func1(),

SELECT Col2 FROM Func2(),

SELECT Col3,Col4,Col5 FROM Func3(),

SELECT Col6 FROM Func4(),

SELECT Col7 FROM Func5()

我有大量的函数可以返回一值结果,而一个函数可以返回3列。我想将所有这些数据插入表的一行中吗?

我可以看到函数返回多个列可能是个问题吗?


问题答案:

如果所有函数仅返回一行…

INSERT INTO
  MyTable (Col1,Col2,Col3,Col4,Col5,Col6,Col7)
SELECT
  f1.col1, f2.col2, f3.col3, f3.col4, f3.col5, f4.col6, f5.col7
FROM
  (SELECT Col1 FROM Func1())           AS f1
CROSS JOIN
  (SELECT Col2 FROM Func2())           AS f2
CROSS JOIN
  (SELECT Col3,Col4,Col5 FROM Func3()) AS f3
CROSS JOIN
  (SELECT Col6 FROM Func4())           AS f4
CROSS JOIN
  (SELECT Col7 FROM Func5())           AS f5

如果函数返回的行不止一行,则需要以常规方式将它们连接;带有确定哪个左行连接到哪个右行的谓词。



 类似资料:
  • 我试图在postgres表的numeric datatype列中插入一个日期值 在上面的查询中,col1是numeric类型。 我还可以使用value()子句插入一些值,使用select语句插入一些值吗?例如: 在上表中:1。col1即将到来序列2。col2和col3来自两个表的连接,即表B和表C 3。col4和col5是硬编码值 如何在一个查询中实现这一点? 通过两个表的连接进行插入,可按如下方

  • 问题内容: 好的。简而言之,我正在尝试执行INSERT SELECT,例如: 当然,@key不会从每个插入中返回每个后续的LAST_INSERT_ID(),而是仅从最后一个插入返回ID。 基本上,我将旧的USER表拆分为ENTITY和USER,例如: 我为什么要这样做?基本上,我有一个“商店”实体,它将具有“用户”公用的字段,例如地址和电话号码。因此,任何“ ENTITY”都可能没有多个地址(送货

  • 问题内容: 我从网络以以下格式下载了800条语句: 我听说过事务,s和使用,但是我不知道哪种情况更适合这种情况。 截断后将它们插入sqlite数据库的最佳方法是什么? 问题答案: 如果要运行多个查询,则为了提高数据完整性和性能,应该使用事务。这是一个代码,可让您了解如何执行此操作:

  • 问题内容: 我正在用php(mysql)生成报告, 例如: 这样我有12张桌子。 我可以在单个查询中做到吗。如果我做到了?过程变慢了吗? 问题答案:

  • 问题内容: 我有一张调查答案表,类似: 并且我想创建一个查询,该查询将为我提供该表的结果摘要,从而允许我设置相关的日期范围。我下面的声明非常有效: 但是我不确定是否可以做得更好,以及在哪里添加日期范围过滤功能。 问题答案: 来自多刺的诺曼的第一个查询将给出这样的结果: 仅将几组不同的结果分组。我假设您想按问题将是/否的总数分类。在这种情况下,您必须执行以下操作: 结果: