首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL -将记录插入到表中并返回结果

PostgreSQL -将记录插入到表中并返回结果
EN

Stack Overflow用户
提问于 2020-06-03 06:43:24
回答 1查看 36关注 0票数 0

下面的代码片段

代码语言:javascript
复制
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的记录,如下所示

代码语言:javascript
复制
generate_file_data record
(reference, directory, platform, library)
(reference, directory, platform, library)
(reference, directory, platform, library)
(reference, directory, platform, library)
...

结果( generate_file_data()函数的返回类型)是该类型的记录

代码语言:javascript
复制
id integer          directory text        platform text         library text
id                  directory             platform              library

它总是返回一个结果。我想知道是否有一种方法可以将记录拆分为四部分,并将它们放入

代码语言:javascript
复制
TABLE(id text, directory text, platform text, library text)

所以结果将是一个表,而不是一列记录,有点像这样

代码语言:javascript
复制
id integer          directory text        platform text         library text
id                  directory             platform              library
id                  directory             platform              library
id                  directory             platform              library
id                  directory             platform              library
...
EN

回答 1

Stack Overflow用户

发布于 2020-06-03 09:30:27

向几乎得到正确答案的@GMB致敬,似乎交叉联接横向允许我们为每一行调用generate_file_data()函数的结果,并将其粘合在一起

代码语言:javascript
复制
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中指定我们想要返回的列!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62162544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档