redshift中的动态表名

时间:2015-04-01 11:53:48

标签: dynamic amazon-redshift

我有一些名称相似但前缀不同的表:us_cities,ca_cities和uk_cities。 这些表中的每一个只包含一列(City_name)。我想将所有这些表合并在一起并获得如下结果:

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 个答案:

答案 0 :(得分:2)

您可以使用information_schema.tables表来获取与命名约定匹配的表的列表。但是,您需要一个外部流程来替换您的视图。

SELECT * FROM information_schema.tables WHERE table_name LIKE '%_cities';
恕我直言,你最好只拥有一张cities表并使用视图来创建特定国家/地区的版本。 :)