下面的代码片段
SELECT data.generate_file_data(
p.file_name,
p.reference,
p.extension,
p.platform,
p.library,
p.path,
p.is_temporary
) x
FROM files.main p;返回一列名为generate_file_data的记录,如下所示
generate_file_data record
(reference, directory, platform, library)
(reference, directory, platform, library)
(reference, directory, platform, library)
(reference, directory, platform, library)
...结果( generate_file_data()函数的返回类型)是该类型的记录
id integer directory text platform text library text
id directory platform library它总是返回一个结果。我想知道是否有一种方法可以将记录拆分为四部分,并将它们放入
TABLE(id text, directory text, platform text, library text)所以结果将是一个表,而不是一列记录,有点像这样
id integer directory text platform text library text
id directory platform library
id directory platform library
id directory platform library
id directory platform library
...发布于 2020-06-03 09:30:27
向几乎得到正确答案的@GMB致敬,似乎交叉联接横向允许我们为每一行调用generate_file_data()函数的结果,并将其粘合在一起
SELECT x.id, x.directory, x.library, x.platform
FROM files.main p
CROSS JOIN LATERAL data.generate_file_data(
p.file_name,
p.reference,
p.extension,
p.platform,
p.library,
p.path,
p.is_temporary
) x;之后,我们在SELECT中指定我们想要返回的列!
https://stackoverflow.com/questions/62162544
复制相似问题