【发布时间】:2017-05-10 17:43:45
【问题描述】:
我正在使用 MYSQL。我的表包含列名称为 Revenue2000,Revenue2001,Revenue2002,....,Revenue 2016,Revenue 2017
传统方式(手动选择所有列):
select Revenue2005,
Revenue2006,
Revenue2007,
Revenue2008,
Revenue2009,
Revenue2010
from table_name
想要的方式:
我想写一个动态选择语句。应该有 2 个变量“开始”和“结束”,这样我就可以使它成为动态的。用户可以选择指定开始年份和结束年份,并可以查看所需的结果。
在上述情况下,开始年份 =2005 结束年份=2010
【问题讨论】:
-
嗯,我认为这只是说明了糟糕的数据库设计 会以何种方式帮助您
-
你应该规范化设计。您可以将数据存储在两列 - 收入和年份。那么这将是一个简单的 where 子句。
-
我同意@GurwinderSingh 如果您要重写查询,您不妨尽可能更改您的表模型。有两列,一列用于收入,一列用于年度,无需使用动态 SQL 即可解决所有问题。