根据特定列投影整个数据库表

时间:2012-02-05 00:54:37

标签: sql database

是否有任何数据库服务器可以对整个数据库进行全局投影?例如,假设我们有30个具有'Year'列的表,并且数据库具有过去5年的数据,并且假设我们一次对一年的数据感兴趣,有没有办法做全局投影,所以我们可以看到数据库,一次只包含一年的数据?

2 个答案:

答案 0 :(得分:1)

带有UNION子句的WHERE查询按年份日期范围过滤,可以解决您所描述的内容。

所有主要的RDBMS都支持此功能。

如果表格都具有相同的架构,那么很容易;如果没有,你可能不得不为UNION的某些部分引入“虚拟”列。

[SGBD是RDBMS的法语术语:What does SGBD mean?]

答案 1 :(得分:1)

如果你真的不能改变现有的代码让它只显示过去的一年,那么尝试为每个表创建一个视图,如果你想显示除了然后你可以在当前年份查询源表。您重命名该表并将该视图命名为该表(尽管这通常是草率的练习)。

否则,您将不得不在所有查询中使用WHERE子句。

实际上,这是你的ORM应该处理的东西而不是你的RDBMS ..除非你在你的代码中进行原始的SQL查询(在这种情况下,请参阅VIEW选项的答案的开头)。