PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como concatenar todos os resultados da linha da tabela?


Rapido e sujo:
SELECT t::text FROM tbl t WHERE id = 1;

  • t é um alias para a tabela e não é estritamente necessário. Você também pode usar o nome da tabela original. Mas se você tiver uma coluna com o mesmo nome, ela terá precedência.

  • Então t representa o tipo de linha da tabela, que é automaticamente forçado para a representação de texto na saída.
    Adicionei uma conversão explícita para make é text internamente também - caso você queira fazer alguma coisa com ele ...
    t::text é a notação curta do Postgres para o padrão SQL cast (t AS text) , que você também pode usar. Detalhes no manual.

  • Você pode querer cortar os parênteses iniciais e finais (único!) que denotam um tipo de linha:
    SELECT right(left(t::text, -1), -1))
    FROM   tbl AS t
    WHERE  id = 1;
    

  • "sujo", porque você obtém a notação de linha do Postgres, o separador passa a ser apenas a vírgula que você pediu, mas alguns valores também são escapados e / ou aspas duplas, se necessário.