我需要的是符合字符串/文本json的数组,如下所示:
[
[1421420100, 14214201003487],
[1421420101, 14214201003487],
[1421420109, 14214201003487]
...
]
以便将其从服务器返回到客户端而无需进一步详细说明。
我有一个查询返回两个字段的表的函数,但我想返回一个数组数组,以便调用该函数,然后调用array_to_json
。然后,我想将其转换为text / string。
这可能吗?一组数组可以有两种不同的类型吗?
答案 0 :(得分:1)
Postgres数组不能保存不同类型的元素
但您可以返回复合类型数组 (bigint, double precision)
。但是,类型需要在系统中注册。使用显式CREATE TYPE
语句或隐式地作为表或视图的行类型。
示例:
CREATE TYPE int8_float AS (b bigint, f float);
CREATE OR REPLACE FUNCTION f_combo_arr()
RETURNS int8_float[] AS
$func$
SELECT ARRAY(SELECT (int8_col1, float_col)::int8_float FROM tbl);
$func$ LANGUAGE sql;
呼叫:
SELECT f_combo_arr();
float
是Postgres中double precision
的别名。
可能有一个更智能的解决方案,例如直接从函数返回数据类型json
。
相关: