有一个包含JSON字符串的表列和一个返回单个字符串的(定义的)函数(get_jstr()).

SELECT get_jstr();
<..returns some JSON string...>

如何将此输出提供给jsonb_path_query()函数? try 了几个变种

SELECT jsonb_path_query( (SELECT get_jstr()), '$[0]');
SELECT jsonb_path_query( v, '$[0]') FROM (SELECT get_jstr()) v;

但它们都不起作用.有什么建议吗?

推荐答案

docs人起:

jsonb_path_query ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb

目标应该是JSONB,因此要么将返回值强制转换为JSONB:

SELECT jsonb_path_query( get_jstr()::jsonb, '$[0]');

或者编辑您的函数以返回JSONB而不是JSON

Postgresql相关问答推荐

为什么在使用PostGIS时,英国郡的几何图形会出现在几内亚湾?

有没有一种方法可以在参数中添加密码,并在批处理文件中需要时自动获取密码?

使用Helm设置PostgreSQL配置

如何在 kubernetes 中安全地重启 postgresql 容器?

postgres vacuum 是否改进了我的查询计划

PostgreSQL pg_dump 创建 sql 脚本,但它不是 sql 脚本:有没有办法让 pg_dump 创建标准的 sql 脚本?

PL/pgSQL 中 PL/SQL %ISOPEN 的类似功能是什么?

转换数组类型

我可以使用 Rails 将数组存储在 hstore 中吗

Docker - 判断 postgres 是否准备好

如何从 postgresql Select 查询中的 age() 函数中仅获取年份

如何检索 PostgreSQL 数据库的 comments ?

brew 程序更新恼人的错误信息

Select 空字段

Postgres 中是否有 MAX_INT 常量?

如何从 PostgreSQL 中的 Json 数组中获取元素

SQL:子查询的列太多

如何更改 PostgreSQL 中的 REFERENCES?

将postgres中的所有记录转换为Titlecase,首字母大写

PostgreSQL 中 from dual 的等价性