当前位置: 代码迷 >> 综合 >> KINGBASE V7 列转行
  详细解决方案

KINGBASE V7 列转行

热度:60   发布时间:2024-01-25 23:49:10.0

    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);

--创建转换函数

--创建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

 

 

  相关解决方案