我有一个函数 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)
我当然会得到三列,但我不知道如何把名字放在那里,除了把它放在功能本身。
最佳答案
你可以使用这个简单的语法在 Postgres 上做你想做的事:
SELECT name, (symbol_scan(id)).*
FROM symbols
关于sql - "Explode"SQL函数返回的表成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14440818/