【发布时间】:2018-06-21 17:12:50
【问题描述】:
在我的表格中,每条记录最多可以有 30 个不同的预算代码。 我需要一个将表中的所有预算代码作为单列返回的查询。 查询我有错误指出子查询返回的值超过 1 个。
SELECT
(SELECT [budgetCode1] FROM TABLE_NAME),
(SELECT [budgetCode2] FROM TABLE_NAME),
(SELECT [budgetCode3] FROM TABLE_NAME),
(SELECT [budgetCode4] FROM TABLE_NAME),
(SELECT [budgetCode5] FROM TABLE_NAME),
(SELECT [budgetCode6] FROM TABLE_NAME),
(SELECT [budgetCode7] FROM TABLE_NAME),
(SELECT [budgetCode8] FROM TABLE_NAME),
(SELECT [budgetCode9] FROM TABLE_NAME),
(SELECT [budgetCode10] FROM TABLE_NAME),
(SELECT [budgetCode11] FROM TABLE_NAME),
(SELECT [budgetCode12] FROM TABLE_NAME),
(SELECT [budgetCode13] FROM TABLE_NAME),
(SELECT [budgetCode14] FROM TABLE_NAME),
(SELECT [budgetCode15] FROM TABLE_NAME),
(SELECT [budgetCode16] FROM TABLE_NAME),
(SELECT [budgetCode17] FROM TABLE_NAME),
(SELECT [budgetCode18] FROM TABLE_NAME),
(SELECT [budgetCode19] FROM TABLE_NAME),
(SELECT [budgetCode20] FROM TABLE_NAME),
(SELECT [budgetCode21] FROM TABLE_NAME),
(SELECT [budgetCode22] FROM TABLE_NAME),
(SELECT [budgetCode23] FROM TABLE_NAME),
(SELECT [budgetCode24] FROM TABLE_NAME),
(SELECT [budgetCode25] FROM TABLE_NAME),
(SELECT [budgetCode26] FROM TABLE_NAME),
(SELECT [budgetCode27] FROM TABLE_NAME),
(SELECT [budgetCode28] FROM TABLE_NAME),
(SELECT [budgetCode29] FROM TABLE_NAME),
(SELECT [budgetCode30] FROM TABLE_NAME) AS BudgetCodes
FROM TABLE_NAME
【问题讨论】:
-
重新考虑您的宽数据库表,因为这是低效的存储并且无法正确扩展。创建一个 BudgetCodes 表,其中包含指向 TableName 的外键链接,并为 1-30 和 one 列维护 one 列指示符对应数字或字符串值的指示符。
-
正如@RolandMySQLDBA 的concluded:没有替代品或创可贴可以弥补糟糕的设计。请,为了您将来的理智,今天规范化该表!!!
-
我非常想规范化我的表格。不幸的是,这个表是通过另一个系统的数据转储创建的。我对表结构没有发言权。
标签: sql ms-access ms-access-2016