sql >> Database teknologi >  >> RDS >> PostgreSQL

Opret streng fra array

du kan kombinere flere operationer som gener_subscripts og array for at få resultatet:

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]
  ), '->'
) ;
 

liveeksempel Sqlfiddle

eller brug ydre sammenføjning kombineret med en hvilken som helst:

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

liveeksempel Sqlfiddle



  1. Indekseringskolonne med REPLACE-funktion i mySQL

  2. Postgres gruppe efter forespørgsel

  3. Sådan får du kategorier og underkategorier Query Builder i Laravel

  4. SQL Hvor ENHVER kolonne er lig med en værdi