KINGBASE V7 行转列

    KINGBASE 数据库是基于PostgreSQL内核研发的国产数据库,在应用开发过程中想使用列转行函数,发现KINGBASE V7版本没有,PostgreSQL 列转行函数试试STRING_AGG。没有没关系,我们可以自定义函数来实现列转行,高版本的KINGBASE会支持列转行函数。

 --创建测试表

   CREATE TABLE TESTHAHA(ID INT,DATA_TIME TIMESTAMP, VALUE NUMBER(3,0));

--插入测试数据

INSERT INTO TESTHAHA VALUES(1,'2020-01-16 00:10:00',1),(2,'2020-01-17 00:20:00',2),(1,'2020-01-18 00:30:00',3),(2,'2020-01-19 00:40:00',4);

--创建转换函数

KINGBASE V7 行转列_第1张图片

--创建AGGREGATE函数 实现列转行

--调用行转列函数

SELECT ID,STRING_AGG(to_char(DATA_TIME,'YYYY-MM-DD HH24:MI:SS'),','),STRING_AGG(TO_CHAR(VALUE,'9999D9999'),',') FROM TESTHAHA GROUP BY ID;

--GROUP BY 后可加having 语句再次进行过滤,TO_CHAR可以设置结果输出格式,参考金仓手册。

参考BLOG:http://blog.itpub.net/16674653/viewspace-775880/

官方网站:https://www.postgresql.org/docs/9.2/sql-createaggregate.html

 

 

你可能感兴趣的:(数据库,KINGBASE,列转行)