Hurtigt og beskidt:
SELECT t::text FROM tbl t WHERE id = 1;
-
t
er et alias for bordet og ikke strengt nødvendigt. Du kan også bruge det originale tabelnavn. Men hvis du har en kolonne med samme navn, har den forrang. -
Så
t
repræsenterer rækketypen for tabellen, som automatisk tvinges til tekstrepræsentation ved output.
Jeg tilføjede en eksplicit cast for at lave dettext
også internt - hvis du vil gøre noget ved det ...t::text
er Postgres kort notation for SQL-standardencast (t AS text)
, som du også kan bruge. Detaljer i manualen. -
Det kan være en god ide at trimme (enkelt!) foranstående og bagende parenteser, der angiver en rækketype:
SELECT right(left(t::text, -1), -1)) FROM tbl AS t WHERE id = 1;
-
"beskidt", fordi du får Postgres rækkenotation, er separatoren tilfældigvis lige det komma, du bad om, men nogle værdier er også escaped og/eller dobbelte anførselstegn, hvis det er nødvendigt.