2015-04-01 57 views
0

我有幾個名字相似但名稱不同的表:us_cities,ca_cities和uk_cities。 這些表中的每一個僅包含一列(City_name)。我想聯盟所有這些表一起,得到這樣一個結果:redshift中的動態表名

select 'US' as country, City_name from US_cities 
union all 
select 'CA' as country, City_name from CA_cities 
union all 
select 'UK' as country, City_name from UK_cities 

在未來,我將有更多的城市表爲更多的國家,我想一個動態查詢/視圖,將確定相關的表(* _cities)並將它們添加到聯合查詢中。我如何在Redshift中做到這一點?

回答

1

您可以使用information_schema.tables表獲取與您的命名約定匹配的表的列表。但是,您需要一個外部過程來替換您的視圖。

SELECT * FROM information_schema.tables WHERE table_name LIKE '%_cities'; 

恕我直言,你會好得多具有單cities表,使用視圖創建國家特定的版本。 :)

+0

這正是我理解我應該這樣做。可悲的是,我正在談論他們管理的第三方表格,所以我分別拿到了它們。 謝謝 – 2015-04-02 16:46:11