我需要一个SQL函数来返回带有一些常规列和一些数组列的表。PostgreSQL - 带数组列的返回表
CREATE OR REPLACE FUNCTION fn_get_some_properties(...)
RETURNS TABLE(
someText TEXT,
someBool BOOLEAN,
someInt INTEGER,
propID INTEGER[],
propVal TEXT[]
) AS
...
检索被存储在两个表的属性:一个用于标量值 - someText
,someBool
,someInt
;另一个是阵列。 它们通过一些全局键连接。
select * from Table1 where key_column= MyGlobalKey;
select * from Table2 where key_column= MyGlobalKey;
所以回到我的问题。如何将第二个查询(Table2
)的结果转换为数组propID
和propVal
并返回结果。
CREATE TABLE Table1 (
key_column INTEGER, -- key_column is a primary key here, hence unique
someText TEXT,
someBool BOOLEAN,
someInt INTEGER
...
CREATE TABLE Table2 (
key_column INTEGER, -- key_column is not unique here
prop_id INTEGER,
prop_val TEXT,
...
你有没有尝试过你写的?有用。你使用什么语言(SQL除外)? – 2014-09-01 15:45:29
当您尝试第二个查询时会发生什么?应该发生什么呢? – 2014-09-01 17:06:29
我的解释有误导性。抱歉。我的意思是说第二个表的值存储为常规行,所以问题是将这些行转换为单行数组类型,然后将它加入到第一个表中...... – giladrv 2014-09-02 06:03:21