因此,我是第一次使用redshift和SQL。由于对SQL的了解有限,我遇到了这个问题。
我有第一个查询,它向我返回带有columnA的表。 (TableX,TableY ...等)
SELECT tablename
FROM PG_TABLE_DEF
WHERE ("column" = 'columnA');
还有第二个查询,它向我返回表中包含columnA特定值的所有行。
SELECT *
FROM TableX
WHERE columnA='123934'
我要实现的是从第一个查询(即表列表)中获取结果,并为每个表运行第二个查询,即为从第一个查询返回的每个表获取具有columnA = 123934值的行。
答案 0 :(得分:0)
要实现的目标是使用动态SQL完成的。动态查询使您可以从字符串中运行查询。 我不是Redshit用户,但是要生成您需要运行的SQL字符串,可以使用以下查询:
SELECT 'SELECT * FROM '||tablename ||' WHERE ColumnA= ''123934''; '
FROM PG_TABLE_DEF
WHERE ("column" = 'columnA');
您可以尝试手动运行它。