sql >> データベース >  >> RDS >> PostgreSQL

配列から文字列を作成する

    generate_subscriptsやarrayなどの複数の操作を組み合わせて結果を得ることができます:

    with mtab as (
          SELECT id, name, array_append(arrayofparents,id) as arrayofparents,
          generate_subscripts(array_append(arrayofparents, id), 1) AS p_id FROM tab where id=2
    )
    select distinct array_to_string(
      array(
        select tab.name from tab join mtab t on tab.id=t.arrayofparents[t.p_id]
      ), '->'
    ) ;
    

    実例のSqlfiddle

    または、外部結合を次のいずれかと組み合わせて使用​​します:

    SELECT coalesce(string_agg(p.name, '->') || '->' || t.name, t.name) AS parentnames
    FROM tab AS t
      LEFT JOIN tab AS p ON p.id = ANY(t.arrayofparents)
     where t.id =7 
    GROUP BY t.id, t.name
    

    実例のSqlfiddle



    1. mysqlスリーププロセスを自動強制終了するシェルスクリプト

    2. MySQL外部キー、テーブルを作成できません(errno:150)

    3. 日付範囲の比較

    4. R12.2EbuisnessSuiteの管理スクリプト