模型中有一组表(约100个)qgep,名字是,名字以开头开头vl_。它们有相同的列(colA,colB,colC)。 0 ` o" P. P' `6 A( Y. Z- t. P我想做的是得到一个大表,这是我所有的表vl_*表的并集,还有一个带有原始表名的列。: |# J: A9 f: H3 L
我可以得到表列表:0 c- n4 W6 k. V* p% [& v
SELECT table_name FROM information_schema.tables WHERE table_schema = 'qgep' AND table_name LIKE 'vl_%'我发现解决问题的唯一方法就是生成一个问题SQL命令进一步执行: 1 B% e* n1 v! F* U3 c$ p* SSELECT string_agg( SELECT ||table_name ||''' AS table_name,colA,colB,colC FROM qgep.' ||table_name ,' UNION ')::text FROM information_schema.tables WHERE table_schema = 'qgep' AND table_name LIKE 'vl_%'"然后执行此SQL命令将输出我想要的。虽然,它不是很好,而且很丑。 8 v, z- Q0 R& {. s" Z我想避免使用EXECUTE。你对找什么有什么建议吗?我能做什么?WITH ... UNION ALL吗?' I+ J& y+ w; c% \; p/ X g 继承对我有帮助吗? 能知道记录在哪个类别吗?select? ! I/ f H, c! S r( u4 \7 B 5 _: g7 K7 ^( d5 D( D6 F4 ~ 解决方案: