如何将选择 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 是否真的会 replaceNewTable
在这种情况下,它实际上可能会将内容附加到表中,然后按照我的理解完全匹配用户的请求.
@Romain Muller:为什么不启动 Access 并找出问题的答案,而不是大声嘀咕呢?
事实上,如果您在 Access QBE 中运行该 SQL,它会询问您是否要替换现有表。如果您在 SetWarnings ON 的情况下使用 DoCmd.RunSQL 运行它,它也会提示您。如果您尝试在 DAO 中执行它,它将失败,因为该表已经存在。在任何情况下,它都不会将记录附加到现有表中。【参考方案3】:
首先,创建一个包含所需键、约束、域检查、引用等的表。然后使用INSERT INTO..SELECT
构造来填充它。
不要被SELECT..INTO..FROM
结构所诱惑。结果表将没有键,因此实际上根本不是表。最好从适当的表格开始,然后添加数据,例如将更容易捕获不良数据。
例如,SELECT..INTO
子句如何出错:它可能导致列包含 NULL 值,而在事件发生后您可以将列更改为 NOT NULL,引擎不会替换 @ 987654324@,因此您最终会得到一个包含 NULL
s 的 NOT NULL 列!
还可以考虑创建一个“已查看”表,例如使用CREATE VIEW
SQL DDL 而不是基表。
【讨论】:
【参考方案4】:如果您想通过用户界面进行操作,您还可以:
A) 创建并测试选择查询。保存它。
B) 创建生成表查询。当询问要显示哪些表时,选择查询选项卡和您保存的查询。
C) 告诉它您要创建的表的名称。
D) 去煮咖啡(取决于桌子的口味和大小)
【讨论】:
【参考方案5】:Select *
Into newtable
From somequery
【讨论】:
以上是关于如何将选择 sql 查询的结果转换为 ms 访问中的新表的主要内容,如果未能解决你的问题,请参考以下文章
如何将SQL查询结果转换为Excel表格推送给企业微信或钉钉的员工账号
如何将 MS Access“IIF”查询转换为 Sql Server 查询?