posgre的行列转换
在使用数据库的过程中会出现一些需要对字段内的数据进行拆分行转化为列或者将一列数据转化为一行的处理,下面就把postgre内的两个函数进行说明。
1.列转行函数(string_agg)
select user_id,string_agg(name,'想要使用的分割符') from tmp group by user_id
初始数据
user_id | name |
---|---|
1 | a |
1 | b |
1 | c |
达到效果
user_id | name |
---|---|
1 | a,b,c |
2.行转列函数
select story_name,regexp_split_to_table(replace(keyword,',',','),',') as keyword from tmp
初始效果
user_id | name |
---|---|
1 | a,b,c |
达到效果
user_id | name |
---|---|
1 | a |
1 | b |
1 | c |
3.要返回的是数组的话, 那么可以用regexp_split_to_array