我有一个函数symbol_scan(integer)
,它返回一个包含三列的表:schema, table, count
。
我可以像这样执行选择查询:
> SELECT name, symbol_scan(id), FROM symbols;
name | symbol_scan
------------------+--------------------------
MY_FIRST_SYMBOL | (public,random,1)
MY_SECOND_SYMBOL | (public,another_table,1)
UNIVERSAL | (public,international,5)
是否可以使用其他查询,以便提取symbol_scan(id)
中的列名,以便表格如下所示?
name | schema | table | count
------------------+--------+---------------+-------
MY_FIRST_SYMBOL | public | random | 1
MY_SECOND_SYMBOL | public | another_table | 1
UNIVERSAL | public | international | 5
有办法做到这一点吗?
注意:如果我运行SELECT * FROM symbol_scan(1)
,我当然会得到三列,但我不知道如何将名称放在那里,除了将其放入函数本身。
答案 0 :(得分:3)
您可以使用以下简单语法在Postgres上执行您想要的操作:
SELECT name, (symbol_scan(id)).*
FROM symbols