sql >> Databáze >  >> RDS >> PostgreSQL

Jak zřetězit všechny výsledky z řádku tabulky?

Rychlé a špinavé:

SELECT t::text FROM tbl t WHERE id = 1;
  • t je alias pro tabulku a není nezbytně nutný. Můžete použít i původní název tabulky. Ale pokud máte sloupec se stejným názvem, má přednost.

  • Takže t představuje typ řádku tabulky, který je na výstupu automaticky nucen k zobrazení textu.
    Přidal jsem explicitní přetypování do make to text i interně - v případě, že s tím chcete něco udělat ...
    t::text je krátká notace Postgresu pro standard SQL cast (t AS text) , kterou můžete použít i vy. Podrobnosti v příručce.

  • Možná budete chtít oříznout (jediné!) úvodní a koncové závorky, které označují typ řádku:

    SELECT right(left(t::text, -1), -1))
    FROM   tbl AS t
    WHERE  id = 1;
    
  • "nečistý", protože získáte řádkovou notaci Postgres, oddělovač je náhodou pouze čárka, o kterou jste požádali, ale některé hodnoty jsou také uvozeny a/nebo v případě potřeby dvojitě uvozovány.




  1. Měl by mít každý cizí klíč SQL Server odpovídající index?

  2. SQL Výběr ze dvou tabulek s vnitřním spojením a limitem

  3. Perl DBI Error Msg:Nelze volat metodu selectcol_arrayref na nedefinované hodnotě

  4. Je možné vložit data do dvou různých tabulek v mysql jedním vkládacím dotazem php?