我想创建一个查询,该查询根据对其应用的Where过滤器访问不同的表格。根据过滤条件查询不同的表格
例如,如果预定义的查询被查询这样的:
Select A,B,C,D from the_query
Where A>0 and A<5
[Gets data from source table A0to5_Table)
Select A,B,C,D from the_query
Where A>=5 and A<10
[Gets data from source table A5to10_Table)
所有的源表具有相同的架构。我想要的是查询中的CASE类型语句,例子是基于Where过滤器的。
使用SQL(PostgreSQL或SQL Server)可以做到这一点吗?或者是使用带参数的存储过程的唯一选项?
每列可以有来自不同范围的表的数据,即A> = 5 AND <10,因此表A5到A9,B> 0和B <5表A0到A4)或所有列使用相同的来源表?您将最有可能编写[Dynamic SQL语句](https://msdn.microsoft.com/zh-CN/library/ms188001.aspx)。 –
如何将值传递到条件? –
我的示例的用例是预先计算的聚合,其中变量A是时间戳。对于一小段时间(即1天)A> = 1/1/2016 0:00和A <= 2/1/2016 0:00,我想查询一个包含1分钟聚合记录的表格。但是如果时间范围很大(也许是一年)A> = 1/1/2015 0:00和A <= 1/1/2016 0:00,那么我想要返回每日汇总值。注意我不想动态计算聚合。目标是在大时间范围内不返回大量记录。 –