Обсуждение: getting column names

Поиск
Список
Период
Сортировка

getting column names

От
"Armand Pirvu (home)"
Дата:
Hi

Can somebody please tell me if the below is possible ?


I may not see the forest from the trees


Thanks
Armand




levregdb=# select * from foo1;
 audit_id | table_name
----------+------------
     6012 | foo2
     6013 | foo2
     6014 | foo2

select * from foo2;

levregdb=# select * from foo2;
 foo2_add_by | foo2_add_date
-------------+---------------
(0 rows)

levregdb=# \d foo2;
           Table "csiprev.foo2"
    Column     |     Type      | Modifiers
---------------+---------------+-----------
 foo2_add_by   | character(10) |
 foo2_add_date | character(10) |



My intention is to have an output like

     6012 | foo2|foo2_add_by|foo2_add_date
     6013 | foo2|foo2_add_by|foo2_add_date
     6014 | foo2|foo2_add_by|foo2_add_date


select a.audit_id, a.table_name, b[1],b[2]
from
foo1 a,
(select
array(
select
column_name::text from
information_schema.columns
where
table_name='foo2'
and
(
column_name like '%add_by%'
or
column_name like '%add_date%'
)) b) as foo
;


 audit_id | table_name |      b      |       b
----------+------------+-------------+---------------
     6012 | foo2       | foo2_add_by | foo2_add_date
     6013 | foo2       | foo2_add_by | foo2_add_date
     6014 | foo2       | foo2_add_by | foo2_add_date


But if I join back to foo1 like below I get

select a.audit_id, a.table_name, b[1],b[2]
from
foo1 a,
(select
array(
select
column_name::text from
information_schema.columns
where
table_name=a.table_name
and
(
column_name like '%add_by%'
or
column_name like '%add_date%'
)) b) as foo
;

ERROR:  invalid reference to FROM-clause entry for table "a"
LINE 10: table_name=a.table_name
                    ^
HINT:  There is an entry for table "a", but it cannot be referenced from this part of the query.


Any idea what am I doing wrong ?
Can I do it ?


Thanks
Armand