sql - 拆分长查询以提高可读性/可维护性

标签 sql ms-access

我继承了一个 Access 数据库,该数据库有一个 SELECT 超过 50 列的查询。即使在 MS Access 图形查询设计工具中,IMO 处理的信息也太多了。

快速免责声明 - 我有编程背景,但几乎没有数据库经验。

对于这个特定问题,我需要 50 多列的数据。有没有比一次巨大的查询更好的方法来获取这些信息?

我有点不知道如何继续。 Web 上的共识似乎是 SQL 查询应该保持相对较小且格式良好。我只是不知道当您需要这么多字段时如何应用该原则。我可以通过 UNION 或 INSERT INTO 临时表使用大量简单查询吗?有什么建议或 RTFM 吗?

编辑:有关应用程序的更多信息。数据分布在 14 个表中。我正在抓取数据并将其写入一个外部文件,该文件每行有 50 多个字段(想想电子表格的 CSV 版本)。

编辑:Managing and debugging SQL queries in MS Access看起来它包含相关建议。

最佳答案

我认为你根本没有为自己担心。从 14 个表中提取 50 个字段以输出到平面文件根本不算什么。关键是您故意对数据进行非规范化,因为您需要平面文件输出。根据定义,这意味着有很多列。

正如其他人所说,一张表中有 50 列是不寻常的(尽管不一定是设计错误),但在您描述的情况下,我根本没有看到问题。

简而言之,这听起来是一个完美的设置,我只是想知道是什么让您认为这是一个问题。

关于sql - 拆分长查询以提高可读性/可维护性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398679/

相关文章:

mysql - 错误 2003 (HY000) : Can't connect to MySQL server on '127.0.0.1:3306' (111)

sql - 使用 UNION 子句进行 SELECT

java - PreparedStatement 如何避免或防止 SQL 注入(inject)?

sql - Microsoft Access - 导航表单导致我的查询无法工作

sql - Microsoft Access 插入语句从 Excel 中选择数据 --- 字段是混合整数和文本

vba - 将 UTC 时间转换为本地时间

java - 多个数据库操作出现 JVM 错误 : EXCEPTION_ACCESS_VIOLATION

ms-access - "Query input must contain at least one table or query"错误 - 嵌套查询,MS Access

php - MySql 如果条件匹配则选择值,如果不匹配则选择第一个

mysql - 如何 ORDER BY varchar 字段作为数字?