几年来如何为联合表编写通用代码?

时间:2019-02-14 14:30:45

标签: mysql sql hive etl

我有一个Hive ETL工作,我必须从年表中提取数据并将其合并。不要问为什么每年都有一个单独的表(旧式系统和庞大的系统)。

让我们假设表名是table11,table12,。 。 。,table19

现在我可以写查询到'from'table19,但是我想编写通用代码,否则必须每年更新代码。我相信,如果我是对的,则不能在'from'子句中使用通配符。例如table20 *

最好的问候,

1 个答案:

答案 0 :(得分:0)

您可以使用准备好的语句。因此,您可以使用 CONCAT 生成查询,然后执行该查询。

-- SELECT CONCAT("insert into newtable select * from table",DATE_FORMAT(now(),'%y')) 
SELECT CONCAT(" select * from mysql.user") INTO @sql;
SELECT @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;