我想創建一個查詢,該查詢根據對其應用的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,那麼我想要返回每日彙總值。注意我不想動態計算聚合。目標是在大時間範圍內不返回大量記錄。 –