string_agg和array_agg函数的使用方法
string_agg 函数
语法格式如下:
string_agg(expression,delimiter)
string_agg 函数能将结果集某个字段的所有行连接成字符串,并以delimiter分隔符分隔,expression 表示要处理的字符类型数据;
create table test.eat(
kind varchar(255),
name varchar(255)
);
insert into test.eat values('fruit','banana');
insert into test.eat values('fruit','apple');
insert into test.eat values('vegetables','萝卜');
insert into test.eat values('vegetables','青菜');
将表中的kind相同的name名字整理成一个字符串放到并返回
select kind, string_agg(name,',')
from test.eat
group by kind;
array_agg函数
array_agg函数 将结果集返回的类型为数组,其中数组数据类型同输入数据类型一致,并以delimiter分隔符分隔,expression 表示要处理的字符类型数据。
array_agg(expression) --输入参数为任何非数组类型
操作:
select kind, array_agg(name)
from test.eat
group by kind;
有图片可以看出上图返回的结果为数组。
array_to_string函数
array_to_string–将sql中的数组转为字符串
ARRAY_AGG–将sql中的数据转为数组处理