你好我有一个返回表
的PostgreSQL函数
-- Function: stloadstoryview(integer)
-- DROP FUNCTION stloadstoryview(integer);
CREATE OR REPLACE FUNCTION stloadstoryview(IN luserid integer)
RETURNS TABLE(stid integer, stname text, stowner character varying, stbegin date, stend date) AS
$BODY$
Begin
Return query
Select dbStory.stID, dbStory.stName, (Select usName from dbUser where usID = dbStory.stOwner):: Varchar(30), dbStory.stBegin, dbStory.stEnd from dbStory
where dbStory.stID in (Select dbStoryRights.stID from dbStoryRights where usID = lUserID)
Order by dbStory.stName;
End;
$BODY$
LANGUAGE plpgsql STABLE
COST 100
ROWS 1000;
ALTER FUNCTION stloadstoryview(integer)
OWNER TO postgres;
将返回
"(2,"Story 201",admin,2015-01-01,2015-06-30)"
"(1,Story101,admin,2015-03-01,2015-04-30)"
在第一行中它将返回"故事201"引号和第二行" Story101"这是没有引用的......
如果值之间的空格返回引号,那么如何在没有qoutes的情况下获取该列中的所有值。在值中保留空格。
答案 0 :(得分:0)
看起来您正在直接查询该函数,该函数将返回包含函数返回的所有值的单个列。
尝试从功能中选择字段:
SELECT *
FROM stloadstoryview(1);
将在单独的列中返回数据:
"stid", "stname", "stowner", "stbegin", "stend"
2, Story 201, admin, 2015-01-01, 2015-06-30
1, Story101, admin, 2015-03-01, 2015-04-30