ITPub博客

首页 > Linux操作系统 > Linux操作系统 > postgresql 列转行

postgresql 列转行

原创 Linux操作系统 作者:yang1721 时间:2013-11-06 15:10:22 0 删除 编辑

 PG 里面没有列转行的函数,向oracle 的wm_concat等,mysql的group_concat,但是PG里面没有这个函数,怎么办?我们考虑PG自带的自建函数。

  具体的语法可以见官方文档:http://www.postgresql.org/docs/9.2/static/sql-createaggregate.html

  我们这里就不说具体的的语法规则了,自建函数如下:

CREATE AGGREGATE group_concat(anyelement)

(

sfunc = array_append, -- 每行的操作函数,将本行append到数组里

stype = anyarray, -- 聚集后返回数组类型

initcond = '{}' -- 初始化空数组

);

 

原表:

 

create table daily_test.emp

(

   empno varchar,

   ename varchar,

   deptno varchar

)


查询数据如下:


OK,我们根据deptno创建聚合函数,根据ename 组合

       

但是我们要显示的字符串,不是数组,怎么办?用PG自带的array_to_string函数,直接解决。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16674653/viewspace-775880/,如需转载,请注明出处,否则将追究法律责任。

下一篇: hive
请登录后发表评论 登录
全部评论

注册时间:2011-04-28

  • 博文量
    26
  • 访问量
    87135