kingbase 实现多行转一行

默认情况下金仓数据库中没有array_agg()函数,因此需要自己创建。

创建SQL为:

--金仓默认没有该函数
CREATE AGGREGATE array_agg(anyelement)
(
sfunc = array_append, -- 每行的操作函数,将本行append到数组里
stype = anyarray, -- 聚集后返回数组类型
initcond = '{}' -- 初始化空数组
);

array_to_string该函数是自带的,可直接使用。

组合使用示例如下:

SELECT a.id, a.db_name, array_to_string(array_agg(b.username), ',') FROM tbl_company a, tbl_user b WHERE a.id = b.company_id group by a.id 

猜你喜欢

转载自blog.csdn.net/housonglin1213/article/details/105229607