postgresql 10中Json值的最大长度

时间:2018-02-28 11:46:04

标签: json postgresql

假设我有以下数据

WITH test(id, data) AS (
  VALUES
    (1, '{"key1": "Some text"}'::jsonb),
    (2, '{"other_key": "Some longer text"}'::jsonb),
    (3, '{"key_3": "Short"}'::jsonb)
)
select ??? from test;

请注意,JSON数据是简单的键值数据。密钥可以是任何东西,值总是一个字符串。

我想返回值字段的最大字符数。在这种情况下为16 select length('Some longer text');

1 个答案:

答案 0 :(得分:3)

您需要将值转换为集合,然后您可以对其进行操作:

WITH test(id, data) AS (
  VALUES
    (1, '{"key1": "Some text"}'::jsonb),
    (2, '{"other_key": "Some longer text"}'::jsonb),
    (3, '{"key_3": "Short"}'::jsonb)
)
select max(length(t.val))
from test, jsonb_each_text(data) as t(k,val);