Da pra vc colocar a estrutura da tabela ai e explicar um pouco melhor o que você quer fazer?
T
tiago.rol
A estrutura da tabela já segue acima. O banco é o postgreSQL.
E
edumrf
Cara, você pode criar uma função pra fazer isso, segue o exemplo abaixo.
CREATETABLEteste(idserialNOTNULL,colunacharactervarying(255),CONSTRAINTteste_pkeyPRIMARYKEY(id));CREATEORREPLACEFUNCTIONCONCATENA_COLUNA()RETURNStextAS'DECLAREretTEXT;DECLAREtempRECORD;BEGINret:=''''; FOR temp IN select * from teste LOOP ret := ret || temp.coluna; END LOOP; RETURN ret;END;'LANGUAGE 'plpgsql';select concatena_coluna();
Esse exemplo retorna um texto com a coluna “coluna” da tabela “teste” concatenada.
T
tiago.rol
Essa forma aí até funciona, porém está amarrada a tabela. Teria como receber (nessa função) como parâmetro um resultado de um select?
E
edumrf
Se eu não me engano, tem um comando no postgresql que executa uma string como sql, assim que eu tiver um tempo, te mando a função alterada.
E
edumrf
Da uma olhada nessa função pra ver se te atende.
--parâmetros:tabela,colunaCREATEORREPLACEFUNCTIONCONCATENA_COLUNA(varchar,varchar)RETURNStextAS$BODY$DECLAREretTEXT;DECLAREtempRECORD;BEGINret:='';FORtempINexecute'select '||$2||' as coluna from' || $1LOOPret:=ret||cast(temp.colunaastext);ENDLOOP;RETURNret;END;$BODY$LANGUAGE'plpgsql';