Re: PG Unpivot ?
| От | hubert depesz lubaczewski |
|---|---|
| Тема | Re: PG Unpivot ? |
| Дата | |
| Msg-id | aQjkwyDjsz8Cgp0X@depesz.com обсуждение исходный текст |
| Ответ на | PG Unpivot ? (dfgpostgres <dfgpostgres3@gmail.com>) |
| Ответы |
Re: PG Unpivot ?
|
| Список | pgsql-general |
On Mon, Nov 03, 2025 at 12:18:55PM -0500, dfgpostgres wrote: > psql (13.2, server 15.3) on linux > > I think they call this "unpivot" in MSSQL ? > > How can I get an sql query to return one line per column with... an ID, > column name and value. the ctid for the id field is fine. > > Example: > dvdb=# create table unpivot (intcol integer, floatcol float, strcol > varchar); > CREATE TABLE > dvdb=# insert into unpivot (intcol,floatcol,strcol) values > (1,1.1,'one'),(2,2.2,'two'),(3,3.3,'three'); > INSERT 0 3 > dvdb=# select * from unpivot; > intcol | floatcol | strcol > --------+----------+-------- > 1 | 1.1 | one > 2 | 2.2 | two > 3 | 3.3 | three > (3 rows) > I want 9 records returned, each row with 3 cols, 1st col is the ctid, > second is the column name, third is the val. I think it should work: select u.ctid, e.* from unpivot u, to_jsonb(u) j, jsonb_each_text(j) e; Best regards, depesz
В списке pgsql-general по дате отправления: