如何将选择 sql 查询的结果转换为 ms 访问中的新表

Posted

技术标签:

【中文标题】如何将选择 sql 查询的结果转换为 ms 访问中的新表【英文标题】:how to convert result of an select sql query into a new table in ms access 【发布时间】:2009-12-03 11:49:34 【问题描述】:

如何在 msaccess 中将 select sql 查询的结果转换为新表?

【问题讨论】:

【参考方案1】:

您可以使用子查询

SELECT a,b,c INTO NewTable 
FROM (SELECT a,b,c
FROM TheTable
WHERE a Is Null)

【讨论】:

为什么要使用子查询?即为什么不将 INTO 添加到内部查询中? 请注意,生成的“表”将没有键,因此根本不是表。【参考方案2】:

像这样:

SELECT    *
INTO      NewTable
FROM      OldTable

【讨论】:

不确定 Access 是否真的会 replace NewTable 在这种情况下,它实际上可能会将内容附加到表中,然后按照我的理解完全匹配用户的请求. @Romain Muller:为什么不启动 Access 并找出问题的答案,而不是大声嘀咕呢? 事实上,如果您在 Access QBE 中运行该 SQL,它会询问您是否要替换现有表。如果您在 SetWarnings ON 的情况下使用 DoCmd.RunSQL 运行它,它也会提示您。如果您尝试在 DAO 中执行它,它将失败,因为该表已经存在。在任何情况下,它都不会将记录附加到现有表中。【参考方案3】:

首先,创建一个包含所需键、约束、域检查、引用等的表。然后使用INSERT INTO..SELECT 构造来填充它。

不要被SELECT..INTO..FROM 结构所诱惑。结果表将没有键,因此实际上根本不是表。最好从适当的表格开始,然后添加数据,例如将更容易捕获不良数据。

例如,SELECT..INTO 子句如何出错:它可能导致列包含 NULL 值,而在事件发生后您可以将列更改为 NOT NULL,引擎不会替换 @ 987654324@,因此您最终会得到一个包含 NULLs 的 NOT NULL 列!

还可以考虑创建一个“已查看”表,例如使用CREATE VIEW SQL DDL 而不是基表。

【讨论】:

【参考方案4】:

如果您想通过用户界面进行操作,您还可以:

A) 创建并测试选择查询。保存它。

B) 创建生成表查询。当询问要显示哪些表时,选择查询选项卡和您保存的查询。

C) 告诉它您要创建的表的名称。

D) 去煮咖啡(取决于桌子的口味和大小)

【讨论】:

【参考方案5】:
Select *
Into newtable
From somequery

【讨论】:

以上是关于如何将选择 sql 查询的结果转换为 ms 访问中的新表的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 查询转换为 Sql Server

如何将 MS SQL 查询转换为 MySQL 查询

如何将SQL查询结果转换为Excel表格推送给企业微信或钉钉的员工账号

如何将 MS Access“IIF”查询转换为 Sql Server 查询?

将 SQL 查询转换为访问查询 - SELECT 中的 SELECT

我无法将 SQL 选择查询结果转换为位