PL/pgSQL 行到 json 数组
PL/pgSQL rows to json array
我正在尝试检索一个 json 数组,其中包含使用此函数返回的行:
CREATE OR REPLACE FUNCTION get_users_list()
RETURNS TABLE (
id INTEGER,
name VARCHAR,
surname VARCHAR,
fkrole INTEGER,
username VARCHAR
) as $$
BEGIN
RETURN QUERY SELECT users.id, users.name,
users.surname, users.fkrole,
users.username
FROM users;
END;
$$ LANGUAGE plpgsql;
有人可以给我提示吗?如何将多行转换为单个 JSON 数组?
谢谢!
试一试:
SELECT JSON_AGG(src) AS my_json_array
FROM (
SELECT
users.id,
users.name,
users.surname,
users.fkrole,
users.username
FROM users
) src
;
这将为您提供 "src" 查询中的所有行作为单个 json 数组返回。
http://www.sqlfiddle.com/#!17/6241a/2
这里有一些关于 Postgres JSON 函数的更多信息:https://www.postgresql.org/docs/10/static/functions-json.html
我正在尝试检索一个 json 数组,其中包含使用此函数返回的行:
CREATE OR REPLACE FUNCTION get_users_list()
RETURNS TABLE (
id INTEGER,
name VARCHAR,
surname VARCHAR,
fkrole INTEGER,
username VARCHAR
) as $$
BEGIN
RETURN QUERY SELECT users.id, users.name,
users.surname, users.fkrole,
users.username
FROM users;
END;
$$ LANGUAGE plpgsql;
有人可以给我提示吗?如何将多行转换为单个 JSON 数组?
谢谢!
试一试:
SELECT JSON_AGG(src) AS my_json_array
FROM (
SELECT
users.id,
users.name,
users.surname,
users.fkrole,
users.username
FROM users
) src
;
这将为您提供 "src" 查询中的所有行作为单个 json 数组返回。
http://www.sqlfiddle.com/#!17/6241a/2
这里有一些关于 Postgres JSON 函数的更多信息:https://www.postgresql.org/docs/10/static/functions-json.html