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

Come concatenare tutti i risultati dalla riga della tabella?

Veloce e sporco:

SELECT t::text FROM tbl t WHERE id = 1;
  • t è un alias per la tabella e non strettamente necessario. Puoi anche usare il nome della tabella originale. Ma se hai una colonna con lo stesso nome ha la precedenza.

  • Quindi t rappresenta il tipo di riga della tabella, che viene automaticamente forzata alla rappresentazione del testo sull'output.
    Ho aggiunto un cast esplicito a make esso text anche internamente - nel caso tu voglia farci qualcosa ...
    t::text è la notazione abbreviata di Postgres per lo standard SQL cast (t AS text) , che puoi usare anche tu. Dettagli nel manuale.

  • Potresti voler tagliare le parentesi (singole!) iniziali e finali che denotano un tipo di riga:

    SELECT right(left(t::text, -1), -1))
    FROM   tbl AS t
    WHERE  id = 1;
    
  • "sporco", perché ottieni la notazione di riga di Postgres, il separatore sembra essere solo la virgola che hai chiesto, ma alcuni valori sono anche sottoposti a escape e / o doppia virgoletta se necessario.