PostgreSQL 行列转换的实现方法
更新时间:2025年07月30日 09:32:56 作者:chimchim66
本文主要介绍了PostgreSQL 行列转换的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
一、造测试数据
create table test (
id int,
json1 varchar,
json2 varchar
);
insert into test values(1,'111','{111}');
insert into test values(2,'111,222','{111,222}');
insert into test values(3,'111,222,333','{111,222,333}');
select * from test;造完数据如下

二、行转列
1.函数定义
regexp_split_to_table是PostgreSQL中的一个函数,用于将一个字符串根据正则表达式进行分割,并将结果返回为一个表格,每个分割后的部分作为一行。
2.语法
regexp_split_to_table(string text, pattern text) → setof text string:要分割的原始字符串。 pattern:用于分割的正则表达式模式 返回值,该函数返回一个setof text,即一个文本类型的行集合,包含所有分割后的部分
3.示例
select
id
,json1
,json2
,regexp_replace(regexp_replace(json2,'{',''),'}','') no_json2 --剔除json2外面大括号
,regexp_split_to_table(json1,',') as j1 --使用json1来转换结果
,regexp_split_to_table(regexp_replace(regexp_replace(json2,'{',''),'}',''),',') as j2 --使用json2来转换结果
from test
;执行结果

三、列转行
1.函数定义
string_agg() 函数是 PostgreSQL 中的一个聚合函数,用于将一个列中的值连接成一个字符串。
2.语法
string_agg(column_name, separator) column_name:要聚合的列名。 separator:可选参数,用于连接各个值的分隔符。如果未指定或为空,则使用默认分隔符(逗号加空格)。
3.示例
--将j1用;拼接
select string_agg (j1,';')
from (
select
id
,json1
,json2
,regexp_replace(regexp_replace(json2,'{',''),'}','') no_json2 --剔除json2外面大括号
,regexp_split_to_table(json1,',') as j1 --使用json1来转换结果
,regexp_split_to_table(regexp_replace(regexp_replace(json2,'{',''),'}',''),',') as j2 --使用json2来转换结果
from test
) t
;执行结果

--根据id分组按j1用abc拼接
select id,string_agg (j1,'abc')
from (
select
id
,json1
,json2
,regexp_replace(regexp_replace(json2,'{',''),'}','') no_json2 --剔除json2外面大括号
,regexp_split_to_table(json1,',') as j1 --使用json1来转换结果
,regexp_split_to_table(regexp_replace(regexp_replace(json2,'{',''),'}',''),',') as j2 --使用json2来转换结果
from test
) t
group by id
;执行结果

到此这篇关于pgsql行列转换的实现方法的文章就介绍到这了,更多相关pgsql行列转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
PGSQL 实现把字符串转换成double类型(to_number())
这篇文章主要介绍了PGSQL 实现把字符串转换成double类型(to_number()),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-12-12
PostgreSQL字符切割:substring函数的用法说明
这篇文章主要介绍了PostgreSQL字符切割:substring函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
这篇文章主要介绍了自定义函数实现单词排序并运用于PostgreSQL,本文给大家分享实现代码,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-04-04
pg中replace和translate的用法说明(数据少的中文排序)
这篇文章主要介绍了pg中replace和translate的用法说明(数据少的中文排序),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-01-01


最新评论