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

wqsoz72f  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(206)

我有一个hiveetl工作,我必须从每年的表中提取数据并合并它们。不要问为什么每年都有一个单独的表(遗留系统和巨大的规模)。
假设表名是table11,table12。,表19
现在我可以编写查询到'from'表19,但我想编写通用代码,否则代码必须每年更新。如果我是对的,我相信不能在from子句中使用通配符。e、 g.表20*
致以最诚挚的问候,

k4emjkb1

k4emjkb11#

你可以用事先准备好的语句。所以您可以使用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;

相关问题