美文网首页
postgreSQL一行与多行(20.6.1)

postgreSQL一行与多行(20.6.1)

作者: 剑道_7ffc | 来源:发表于2020-06-23 09:37 被阅读0次

    多行变一行

    准备

    表结构
    CREATE TABLE tmp_book(
    book_id int8 NOT NULL,
    book_name varchar(48)  NOT NULL
    );
    
    数据
    SELECT * FROM tmp_book;
    
    image.png

    函数

    string_agg(字段名,分隔符)
    SELECT book_id,string_agg(book_name,',') FROM tmp_book GROUP BY book_id;
    
    image.png
    array_agg(字段名)
    select book_id,array_agg(book_name) from tmp_book group by book_id;
    
    image.png

    一行变多行

    准备

    表结构
    CREATE TABLE tmp_book(
    book_id int8 NOT NULL,
    book_name varchar(48)  NOT NULL
    );
    
    数据
    SELECT * FROM tmp_book;
    
    image.png

    函数

    unnest(数组)
    SELECT book_id,string_to_array(book_name,','),unnest(string_to_array(book_name,',')) FROM tmp_book;
    
    image.png
    regexp_split_to_table(字符串,分隔符)
    select book_id,regexp_split_to_table(book_name,',') from tmp_book;
    
    image.png

    字符串变数组

    string_to_array

    SELECT book_id,book_name,string_to_array(book_name,',') FROM tmp_book;
    
    image.png

    regexp_split_to_array

    select book_id,book_name,regexp_split_to_array(book_name,',') from tmp_book;
    
    image.png

    相关文章

      网友评论

          本文标题:postgreSQL一行与多行(20.6.1)

          本文链接:https://www.haomeiwen.com/subject/xxjcfktx.html