在PostgreSQL中,如何创建返回实际表的函数?
在PostgreSQL中,如何创建返回实际表的函数 例如,如果我有以下功能:在PostgreSQL中,如何创建返回实际表的函数?,postgresql,plpgsql,postgresql-9.4,Postgresql,Plpgsql,Postgresql 9.4,在PostgreSQL中,如何创建返回实际表的函数 例如,如果我有以下功能: CREATE OR REPLACE FUNCTION cols(_table_name TEXT) RETURNS TABLE (column_name TEXT, data_type TEXT) AS $$ SELECT column_name, data_type FROM information_schema.columns WHERE table_name = _t
CREATE OR REPLACE FUNCTION cols(_table_name TEXT)
RETURNS TABLE (column_name TEXT,
data_type TEXT) AS
$$
SELECT column_name,
data_type
FROM information_schema.columns
WHERE table_name = _table_name
ORDER BY column_name
;
$$ LANGUAGE sql;
以及下表:
CREATE TABLE test (a TEXT, b INTEGER, c NUMERIC);
如果我运行选择cols('test')代码>我得到:
cols
-------------
(a,text)
(b,integer)
(c,numeric)
(3 rows)
但我希望能够:
column_name | data_type
-------------+-----------
a | text
b | integer
c | numeric
(3 rows)
函数很好,这就是你如何调用它
而不是:
SELECT cols('test');
使用
函数很好,这就是你如何调用它
而不是:
SELECT cols('test');
使用
@jdigital确实解决了我的问题,但我仍然不知道它是否完全回答了我的问题。还有,你是怎么发现的?因为我在谷歌上搜索过,所以,我仔细查看了类似的问题链接。我在谷歌上搜索了“postgresreturntable”。我对此不熟悉,希望了解更多。也许这将有助于回答您的其他问题:您正在执行一个没有FROM的SELECT,请参见此处:@jdigital确实解决了我的问题,但我仍然不知道它是否完全回答了我的问题。还有,你是怎么发现的?因为我在谷歌上搜索过,所以,我仔细查看了类似的问题链接。我在谷歌上搜索了“postgresreturntable”。我不熟悉这一点,希望了解更多。也许这将有助于回答您的其他问题:您正在进行选择,但没有来自,请参见此处: