From: | Gerardo Herzig - Redes FMED <gherzig(at)fmed(dot)uba(dot)ar> |
---|---|
To: | jvenegasperu <jvenegasperu(at)gmail(dot)com>, Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Seleccionar columnas por su posicion en lugar de su nombre |
Date: | 2018-08-23 15:06:21 |
Message-ID: | 1110246980.68435.1535036781435.JavaMail.zimbra@fmed.uba.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
----- Mensaje original -----
> De: "jvenegasperu" <jvenegasperu(at)gmail(dot)com>
> Para: "Postgresql" <pgsql-es-ayuda(at)postgresql(dot)org>
> Enviados: Jueves, 23 de Agosto 2018 11:32:10
> Asunto: Seleccionar columnas por su posicion en lugar de su nombre
> buen dia tengo esta situacion
>
> como resultado de hacer una consulta cruzada obtengo datos como se ve en la
> imagen adjunta
>
> donde las fechas eran filas y han pasado a ser columnas.
>
> ahora el tema es que las fechas siempre van a ser variables mes a mes mi
> pregunta es si existe forma de seleccionar las columnas por su posicion en
> lugar de su nombre algo como cambiar
>
> select nombre1,nombre2 from tabla;
>
> por algo quiza como
>
> select columnid(1), columnid(2) from tabla/vista;
>
> como podria lograr algo asi seleccionar por la posicion de la columan en
> lugar de su nombre es que no se como se llamara la columna por que es el
> resultado de la columna cruzada
Creo que vas a tener que construirla en pl/pgsql (u otro lenguage, pl/python o lo que domines).
Los nombres de los campos podes sacarlos de information_schema.columns:
postgres=# \d test
Table "public.test"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+----------------------------------
id | integer | | not null | nextval('test_id_seq'::regclass)
data | text | | |
postgres=# select column_name from information_schema.columns where table_name = 'test' and ordinal_position=2;
column_name
-------------
data
(1 row)
y una vez que tenes los nombres de la/s columnas segun posicion, te armas un string y le mandas un
EXECUTE '.....'
HTH
Gerardo
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2018-08-23 15:10:16 | Re: Seleccionar columnas por su posicion en lugar de su nombre |
Previous Message | Yessica Brinkmann | 2018-08-23 14:56:06 | Re: Acerca de módulo contrib a instalar en Postgres |