Re: json_build_object, numeric types, and function limits on 100 arguments

Поиск
Список
Период
Сортировка
Искать
От
Thomas Kellerer
Тема
Re: json_build_object, numeric types, and function limits on 100 arguments
Дата
Msg-id
f47ac5c6-7558-f2f9-a439-de7fa956884e@gmx.net
Ответ на
Список
Дерево обсуждения
json_build_object, numeric types, and function limits on 100 arguments Wells Oliver <wells.oliver@gmail.com>
Re: json_build_object, numeric types, and function limits on 100 arguments Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: json_build_object, numeric types, and function limits on 100 arguments Wells Oliver <wells.oliver@gmail.com>
Re: json_build_object, numeric types, and function limits on 100 arguments Tom Lane <tgl@sss.pgh.pa.us>
Re: json_build_object, numeric types, and function limits on 100 arguments Wells Oliver <wells.oliver@gmail.com>
Re: json_build_object, numeric types, and function limits on 100 arguments Thomas Kellerer <shammat@gmx.net>
Re: json_build_object, numeric types, and function limits on 100 arguments Wells Oliver <wells.oliver@gmail.com>
Wells Oliver schrieb am 27.01.2021 um 07:39:
> Thanks, Tom. Doing something like:
>
> with t as ( select somekey, someotherkey from mytable ) select json_agg(t)->0 from t;
>
> Feels a lot more, errr, natural. Would rather have the object than an
> array of 1 containing the object, thus the ->0 but this works well
> and feels SQL-ish indeed.

Seems you just want:

    select to_jsonb(t)
    from (
      select somekey, someotherkey
      from my_table
    ) t

Or if you want nearly all columns, convert the whole row, and remove those you don't want:

    select to_jsonb(t) - 'keyone' - 'keytwo'
    from my_table;

That will return all columns as json keys, but remove the columns named "keyone" and "keytwo"

Or build the JSON object directly without a derived table (or CTE)

    select jsonb_build_object('one', somekey, 'two' someotherkey)
    from my_table;



В списке pgsql-admin по дате отправления
От: Wells Oliver
Дата:
От: Wells Oliver
Дата:
FAQ