sql - 为基于数组的列中的每个值多次返回同一行

标签 sql arrays postgresql

假设我有一个包含数组列的表:

id | subIds
1  | {1,2,3}
2  | {4,5}

我将如何返回结果集:

id | subId    
1  | 1
1  | 2
1  | 3
2  | 4
2  | 5

...在不使用函数的单个查询中?

最佳答案

不使用函数”我假设您的意思是“编写我自己的函数来完成”。

unnest() 函数会做你想做的事

select id, unnest(subids) as subid
from the_table;

元素返回的顺序是未定义的。

关于sql - 为基于数组的列中的每个值多次返回同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375511/

相关文章:

sql - ORACLE 约束允许空值,IF

mysql - 如何创建MySQL分层递归查询

sql - 在数据库中,当我分组时,我的查询获取第一行

javascript - 检查组合字符串+数组的所有匹配项

Perl 和 PostgreSQL 转义 $

ruby-on-rails - 事务中的 HTTP 请求?

sql - MySQL解释异常

arrays - 为数组的每个注释属性添加周围的双引号(我认为)

java - 我的 "find median"实现中有什么错误?

java - 如何根据给定模式重新排列列表中的项目?