zoukankan      html  css  js  c++  java
  • string_agg 与array_agg

    string_agg

    实例1

    • 数据
    imos=# select res_id, res_name from test;
     res_id |    res_name
    --------+----------------
          1 | Root
      10001 | EC_PAG
      10002 | EC_PAG_GUOBIAO
    (3 rows)
    
    • 普通string_agg
    imos=# select string_agg(res_name,';') from test;
             string_agg
    ----------------------------
     Root;EC_PAG;EC_PAG_GUOBIAO
    (1 row)
    
    • 带有order by 的string_agg
    imos=# select string_agg(res_name,';' order by res_name ) from test;
             string_agg
    ----------------------------
     EC_PAG;EC_PAG_GUOBIAO;Root
    (1 row)
    
    

    实例2

    • 数据
    postgres=# create table test(id int,name varchar(20));
    CREATE TABLE
    postgres=# insert into test values(1,'a');
    INSERT 0 1
    postgres=# insert into test values(1,'b');
    INSERT 0 1
    postgres=# insert into test values(1,'c');
    INSERT 0 1
    postgres=# insert into test values(2,'d');
    INSERT 0 1
    postgres=# insert into test values(2,'e');
    INSERT 0 1
    postgres=# select * from test;
     id | name
    ----+------
      1 | a
      1 | b
      1 | c
      2 | d
      2 | e
    (5 rows)
    
    
    • 不分组
    
    postgres=# select string_agg(name,',') from test;
     string_agg
    ------------
     a,b,c,d,e
    (1 row)
    
    • 分组
    postgres=# select id ,  string_agg(name,',') from test group by id;
     id | string_agg
    ----+------------
      2 | d,e
      1 | a,b,c
    (2 rows)
    
    

    array_agg

    imos=# select array_agg(res_name) from test;
    ERROR:  could not find array type for data type imos_name
    imos=#
    imos=#
    imos=#
    imos=# select array_agg(res_name::varchar) from test;
              array_agg
    ------------------------------
     {Root,EC_PAG,EC_PAG_GUOBIAO}
    (1 row)
    
    imos=#
    imos=# select array_agg(res_name::varchar order by res_name ) from test;
              array_agg
    ------------------------------
     {EC_PAG,EC_PAG_GUOBIAO,Root}
    (1 row)
    
    
  • 相关阅读:
    给我买个糖?
    主题反馈
    Git:初始化项目、创建合并分支、回滚等常用方法总结
    tomcat
    tomcat
    docker
    oracle树形结构层级查询之start with ....connect by prior、level、order by以及sys_connect_by_path之浅谈
    java时间类Date、Calendar及用法
    java如何将html过滤为纯文本
    小记Java时间工具类
  • 原文地址:https://www.cnblogs.com/yldf/p/11899976.html
Copyright © 2011-2022 走看看