【问题标题】:How to sort JSON array by ID?如何按 ID 对 JSON 数组进行排序?
【发布时间】:2019-09-03 13:44:03
【问题描述】:

我对接收到的 JSON 数组中的数据进行排序时遇到问题。我需要按 ID 排序。

常规的“ORDER BY”不起作用,我在 Internet 上找不到有用的东西。

CREATE OR REPLACE FUNCTION test.f_return_test()
   RETURNS json
   LANGUAGE 'plpgsql'

   COST 100
   VOLATILE 
AS $BODY$
DECLARE

BEGIN
    RETURN (SELECT
           json_agg(json_build_object(
              'id_ref_directory', id_ref_catalog,
              'name_directory', rus_name_catalog
              )
           )
        FROM fregat.t_ref_catalog
        WHERE id_parent = 1 
           AND dttmcl IS NULL);
END;
$BODY$;

现在所有记录都显示在一个堆中(应该是最后一个,以此类推)。我需要按 ID(即第一个键值对)进行排序。谢谢!

【问题讨论】:

    标签: json postgresql sql-order-by


    【解决方案1】:

    ORDER BY <your order column> 添加到您的聚合函数中:

    demo:db<>fiddle

    SELECT
        json_agg(json_build_object('A', col_a, 'B', col_b) ORDER BY id)
    FROM 
        ...
    

    【讨论】:

      猜你喜欢
      • 2013-05-28
      • 2019-12-17
      • 1970-01-01
      • 2020-09-03
      • 2018-12-22
      • 2017-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多