首页 > 数据库 > mysql教程 > 如何在 PostgreSQL 中将文本列拆分为多行?

如何在 PostgreSQL 中将文本列拆分为多行?

Mary-Kate Olsen
发布: 2025-01-06 21:37:40
原创
614 人浏览过

How to Split a Text Column into Multiple Rows in PostgreSQL?

在 Postgres 中将列拆分为行

在 Postgres 中,可能需要将具有单列文本类型的表转换为具有多行的表,其中每行代表文本列中的一个标记。

示例数据和所需数据输出

考虑以下源表:

</p>
<table>
<thead><tr>
<th>subject</th>
<th>flag</th>
</tr></thead>
<tbody><tr>
<td>this is a test</td>
<td>2</td>
</tr></tbody>
</table>
<p>

所需的输出是一个表,其中二列:

登录后复制
token flag
this 2
is 2
a 2
test 2

使用 LATERAL Join 的解决方案

对于 Postgres 14 及更高版本,LATERAL join 可以与 string_to_table() 函数一起使用来实现此转换。查询的最小形式是:

SELECT token, flag
FROM tbl, string_to_table(subject, ' ') token
WHERE flag = 2;
登录后复制

对于 Postgres 13 及更早版本,应使用 unnest(string_to_array(subject, ' ')) 而不是 string_to_table(subject, ' ')。

string_to_table() 函数将主题列拆分为单独的标记,每一行一个标记,标记具有相同的值 柱子。 WHERE 子句过滤结果,仅显示标记为 2 的标记。

此解决方案提供了一种简洁高效的方法,可在 Postgres 中将文本列拆分为单独的行。

以上是如何在 PostgreSQL 中将文本列拆分为多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板