↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科 / JSON 函数和操作符

FUNCTIONJSON 函数和操作符

jsonb_path_query_first

为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。

Returns the first JSON item returned by the JSON path for the specified JSON value, or NULL if there are no results.

JSON 函数和操作符 引入 12 现存至 20 devel 1 条签名 0 次签名变更

签名数
1 条
引入版本
12
状态
现存
签名变更
未变过
本版来源
英文原文

PostgreSQL 18.7 手册 · 9.16 JSON 函数和操作符 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

说明

为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。
jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent boolean]] ) → jsonb
为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。

签名

PostgreSQL 18.7 里 jsonb_path_query_first 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。

  1. jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent boolean]] ) → jsonb

    为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。
    • jsonb_path_query_first('{"a":[1,2,3,4,5]}', '$.a[*] ? (@ >= $min && @ <= $max)', '{"min":2, "max":4}')2

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。

  1. PostgreSQL 17 ← 16 说明更新

    说明更新

  2. PostgreSQL 13 ← 12 手册重排

    这一跳手册重排了函数表的写法,签名文本整体改写,只记函数的增删,不逐条比较签名。

  3. PostgreSQL 12 ← 11 新增此函数

    PostgreSQL 12 起可用

签名矩阵

每条签名在给出了签名的 9 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。

存在 不存在

签名 121314151617181920
jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent bool]] ) → jsonb 存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在
jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb 不存在 存在 存在 存在 存在 存在 存在 存在 存在

同组函数

函数 签名 主签名 版本变动 最近变更
JSON FUNCTIONS AND OPERATORS JSON 函数和操作符 61 个 ↗
array_to_json 1 array_to_json ( anyarray [, boolean ] ) → json 9.42 次
将 SQL 数组转换为 JSON 数组。该行为与 to_json 相同,只是如果可选布尔参数为真,换行符将在顶级数组元素之间添加。 现存
json 1 json ( expression [ FORMAT JSON [ ENCODING UTF8 ]] [ { WITH | WITHOUT } UNIQUE [ KEYS ]] ) → json —
将给定的 text 或 bytea 字符串表达式(采用 UTF8 编码)转换为 JSON 值。如果 expression 为 NULL,则返回 SQL 空值。如果指定了 WITH UNIQUE,则 expression 不能包含重复的对象键。 现存
json_array 2 json_array ( [ { value_expression [ FORMAT JSON ] } [, ...] ] [ { NULL | ABSENT } ON NULL ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) —
从一系列 value_expression 参数或 query_expression 的结果构造 JSON 数组;后者必须是返回单列的 SELECT 查询。如果指定了 ABSENT ON NULL,则忽略 NULL 值。使用 query_expression 时始终如此。如果查询不返回任何行,则返回空 JSON 数组。 现存
json_array_elements 1 json_array_elements ( json ) → setof json 9.41 次
将顶级 JSON 数组展开为一组 JSON 值。 现存
json_array_elements_text 1 json_array_elements_text ( json ) → setof text —
将顶级 JSON 数组展开为一组 text 值。 现存
json_array_length 1 json_array_length ( json ) → integer —
返回顶级 JSON 数组中的元素数量。 现存
json_build_array 1 json_build_array ( VARIADIC "any" ) → json —
根据可变参数列表构建可能异构类型的 JSON 数组。每个参数都按照 to_json 或 to_jsonb 进行转换。 现存
json_build_object 1 json_build_object ( VARIADIC "any" ) → json —
根据可变参数列表构建一个 JSON 对象。按照惯例,参数列表由交替的键和值组成。键参数会被强制转换为文本;值参数则按照 to_json 或 to_jsonb 进行转换。 现存
json_each 1 json_each ( json ) → setof record ( key text, value json ) 9.41 次
将顶级 JSON 对象展开为一组键/值对。 现存
json_each_text 1 json_each_text ( json ) → setof record ( key text, value text ) 9.41 次
将顶级 JSON 对象展开为一组键/值对。返回的 value 的类型为 text。 现存
JSON_EXISTS 1 JSON_EXISTS ( context_item, path_expression [PASSING { value AS varname } [, ...]] [{ TRUE | FALSE | UNKNOWN | ERROR } ON ERROR]) → boolean —
如果将 SQL/JSON path_expression 应用于 context_item 后产生了任何项,则返回 true,否则返回 false。 现存
json_extract_path 1 json_extract_path ( from_json json, VARIADIC path_elems text[] ) → json —
在指定路径下提取 JSON 子对象。(这在功能上相当于#> 操作符,但在某些情况下,将路径写成可变参数列表会更方便。) 现存
json_extract_path_text 1 json_extract_path_text ( from_json json, VARIADIC path_elems text[] ) → text —
将指定路径上的 JSON 子对象提取为 text。(这在功能上等同于#>> 操作符。) 现存
json_object 3 json_object ( [ { key_expression { VALUE | ':' } value_expression [ FORMAT JSON [ ENCODING UTF8 ] ] }[, ...] ] [ { NULL | ABSENT } ON NULL ] [ { WITH | WITHOUT } UNIQUE [ KEYS ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) 161 次
根据给定的所有键值对构造 JSON 对象;如果没有给出键值对,则构造空对象。key_expression 是定义 JSON 键的标量表达式,会被转换为 text 类型。它不能为 NULL,其类型也不能具有到 json 的类型转换。如果指定了 WITH UNIQUE KEYS,则 key_expression 不能重复。如果指定了 ABSENT ON NULL,则 value_expression 求值为 NULL 的键值对会从输出中省略;如果指定了 NULL ON NULL 或省略了该子句,则保留该键,并将其值设为 NULL。 现存
json_object_keys 1 json_object_keys ( json ) → setof text 9.41 次
返回顶级 JSON 对象中的键集合。 现存
json_populate_record 1 json_populate_record ( base anyelement, from_json json ) → anyelement 9.41 次
将顶级 JSON 对象展开为一行,其复合类型与 base 参数相同。系统会扫描该 JSON 对象,查找名称与输出行类型列名匹配的字段,并将其值插入输出中的对应列。(不对应任何输出列名的字段会被忽略。)在典型用法中,base 的值就是 NULL,这意味着凡是不匹配对象字段的输出列都会被填充为空值。但是,如果 base 不是 NULL,那么其中包含的值将用于那些不匹配的列。 现存
json_populate_recordset 1 json_populate_recordset ( base anyelement, from_json json ) → setof anyelement 9.41 次
将由对象组成的顶级 JSON 数组展开为一组行,其复合类型与 base 参数相同。JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
JSON_QUERY 1 JSON_QUERY ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ] [ { WITHOUT | WITH { CONDITIONAL | [UNCONDITIONAL] } } [ARRAY] WRAPPER] [ { KEEP | OMIT } QUOTES [ON SCALAR STRING] ] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON ERROR]) → jsonb —
返回将 SQL/JSON path_expression 应用于 context_item 的结果。 现存
json_scalar 1 json_scalar ( expression ) —
将给定的 SQL 标量值转换为 JSON 标量值。如果输入为 NULL,则返回 SQL 空值。如果输入是数字或布尔值,则返回相应的 JSON 数字或布尔值。对于其他值,则返回 JSON 字符串。 现存
json_serialize 1 json_serialize ( expression [ FORMAT JSON [ ENCODING UTF8 ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ] ) —
将 SQL/JSON 表达式转换为字符或二进制字符串。expression 可以是任意 JSON 类型、任意字符串类型,或采用 UTF8 编码的 bytea。 RETURNING 中使用的返回类型可以是任意字符串类型或 bytea,默认为 text。 现存
json_strip_nulls 1 json_strip_nulls ( target json [,strip_in_arrays boolean ] ) → json 181 次
递归地删除给定 JSON 值中所有值为 null 的对象字段。如果 strip_in_arrays 为 true(默认值为 false),那么数组中的 null 元素也会被删除;否则不会删除。裸露的 null 值永远不会被删除。 现存
JSON_TABLE 1 JSON_TABLE ( context_item, path_expression [ AS json_path_name] [ PASSING { value AS varname } [, ...] ] COLUMNS ( json_table_column [, ...] ) [ PLAN ( json_table_plan ) | PLAN DEFAULT ( { OUTER | INNER } [ , { CROSS | UNION } ] | { CROSS | UNION } [ , { OUTER | INNER } ] ) ] [ { ERROR | EMPTY [ARRAY]} ON ERROR] ) 201 次
下面更详细地说明每个语法元素。 现存
json_to_record 1 json_to_record ( json ) → record —
将顶级 JSON 对象展开为具有由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)输出记录由 JSON 对象的字段填充,与上面描述的 json[b]_populate_record 的方式相同。由于没有输入记录值,不匹配的列总是用空值填充。 现存
json_to_recordset 1 json_to_recordset ( json ) → setof record —
将顶级 JSON 对象数组展开为一组由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
json_typeof 1 json_typeof ( json ) → text —
以文本字符串形式返回顶级 JSON 值的类型。可能的类型有 object、array、string、number、boolean 和 null。(null 的结果不应与 SQL NULL 混淆;参见示例。) 现存
JSON_VALUE 1 JSON_VALUE ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type] [ { ERROR | NULL | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | DEFAULT expression } ON ERROR]) → text —
返回将 SQL/JSON path_expression 应用于 context_item 的结果。 现存
jsonb_array_elements 1 jsonb_array_elements ( jsonb ) → setof jsonb —
将顶级 JSON 数组展开为一组 JSON 值。 现存
jsonb_array_elements_text 1 jsonb_array_elements_text ( jsonb ) → setof text —
将顶级 JSON 数组展开为一组 text 值。 现存
jsonb_array_length 1 jsonb_array_length ( jsonb ) → integer —
返回顶级 JSON 数组中的元素数量。 现存
jsonb_build_array 1 jsonb_build_array ( VARIADIC "any" ) → jsonb —
根据可变参数列表构建可能异构类型的 JSON 数组。每个参数都按照 to_json 或 to_jsonb 进行转换。 现存
jsonb_build_object 1 jsonb_build_object ( VARIADIC "any" ) → jsonb —
根据可变参数列表构建一个 JSON 对象。按照惯例,参数列表由交替的键和值组成。键参数会被强制转换为文本;值参数则按照 to_json 或 to_jsonb 进行转换。 现存
jsonb_each 1 jsonb_each ( jsonb ) → setof record ( key text, value jsonb ) —
将顶级 JSON 对象展开为一组键/值对。 现存
jsonb_each_text 1 jsonb_each_text ( jsonb ) → setof record ( key text, value text ) —
将顶级 JSON 对象展开为一组键/值对。返回的 value 的类型为 text。 现存
jsonb_extract_path 1 jsonb_extract_path ( from_json jsonb, VARIADIC path_elems text[] ) → jsonb —
在指定路径下提取 JSON 子对象。(这在功能上相当于#> 操作符,但在某些情况下,将路径写成可变参数列表会更方便。) 现存
jsonb_extract_path_text 1 jsonb_extract_path_text ( from_json jsonb, VARIADIC path_elems text[] ) → text —
将指定路径上的 JSON 子对象提取为 text。(这在功能上等同于#>> 操作符。) 现存
jsonb_insert 1 jsonb_insert ( target jsonb, path text[], new_value jsonb [, insert_after boolean ] ) → jsonb —
返回插入 new_value 的 target。如果 path 指派的项是一个数组元素,则当 insert_after 为假(此为默认值)时,new_value 将被插入到该项之前;当 insert_after 为真时,则插入到该项之后。如果由 path 指派的项是一个对象字段,则只在对象不包含该键时才插入 new_value。路径中的所有前面步骤都必须存在,否则将不加改变地返回 target。与面向路径的操作符一样,path 中的负整数从 JSON 数组末尾计数。如果最后一个路径步骤是超出范围的数组下标,那么当下标为负时,新值会被添加到数组开头;当下标为正时,新值会被添加到数组末尾。 现存
jsonb_object 2 jsonb_object ( text[] ) → jsonb —
从 text 数组构造 JSON 对象。该数组必须是一维且包含偶数个成员,此时将成员按交替的键/值对处理;或者是二维数组,且每个内部数组恰好有两个元素,将这两个元素作为一个键/值对。所有值都转换为 JSON 字符串。 现存
jsonb_object_keys 1 jsonb_object_keys ( jsonb ) → setof text —
返回顶级 JSON 对象中的键集合。 现存
jsonb_path_exists 1 jsonb_path_exists ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
检查 JSON 路径是否为指定的 JSON 值返回任何项。(这只对 SQL 标准 JSON 路径表达式有用,而不适用于谓词检查表达式,因为后者总是返回一个值。)如果指定了 vars 参数,则它必须是一个 JSON 对象,并且它的字段提供要替换到 jsonpath 表达式中的具名值。如果指定了 silent 参数并为 true,函数会抑制与@? 和 @@操作符相同的错误。 现存
jsonb_path_exists_tz 1 jsonb_path_exists_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_match 1 jsonb_path_match ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
返回指定 JSON 值的 JSON 路径谓词检查的 SQL 布尔结果。(这只对谓词检查表达式有用,而不适用于 SQL 标准 JSON 路径表达式,因为如果路径结果不是单个布尔值,它将失败或返回 NULL。)可选的 vars 和 silent 参数的作用与 jsonb_path_exists 相同。 现存
jsonb_path_match_tz 1 jsonb_path_match_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query 1 jsonb_path_query ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb —
为指定的 JSON 值返回由 JSON 路径返回的所有 JSON 项。对于 SQL 标准 JSON 路径表达式,它返回从 target 中选出的 JSON 值。对于谓词检查表达式,它返回谓词检查的结果:true、false 或 null。可选的 vars 和 silent 参数的作用与 jsonb_path_exists 相同。 现存
jsonb_path_query_array 1 jsonb_path_query_array ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
以 JSON 数组的形式返回由 JSON 路径为指定的 JSON 值返回的所有 JSON 项。参数与 jsonb_path_query 相同。 现存
jsonb_path_query_array_tz 1 jsonb_path_query_array_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query_first 1 jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。 现存
jsonb_path_query_first_tz 1 jsonb_path_query_first_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query_tz 1 jsonb_path_query_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_populate_record 1 jsonb_populate_record ( base anyelement, from_json jsonb ) → anyelement —
将顶级 JSON 对象展开为一行,其复合类型与 base 参数相同。系统会扫描该 JSON 对象,查找名称与输出行类型列名匹配的字段,并将其值插入输出中的对应列。(不对应任何输出列名的字段会被忽略。)在典型用法中,base 的值就是 NULL,这意味着凡是不匹配对象字段的输出列都会被填充为空值。但是,如果 base 不是 NULL,那么其中包含的值将用于那些不匹配的列。 现存
jsonb_populate_record_valid 1 jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean —
用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。 现存
jsonb_populate_recordset 1 jsonb_populate_recordset ( base anyelement, from_json jsonb ) → setof anyelement —
将由对象组成的顶级 JSON 数组展开为一组行,其复合类型与 base 参数相同。JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
jsonb_pretty 1 jsonb_pretty ( jsonb ) → text —
将给定的 JSON 值转换为经过美化并带有缩进的文本。 现存
jsonb_set 1 jsonb_set ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean ] ) → jsonb —
返回 target,将 path 指定的项替换为 new_value,如果 create_if_missing 为真(此为默认值)并且 path 指定的项不存在,则添加 new_value。路径中的所有前面步骤都必须存在,否则将不加改变地返回 target。与面向路径的操作符一样,path 中的负整数从 JSON 数组末尾计数。如果最后一个路径步骤是超出范围的数组索引,并且 create_if_missing 为真,那么如果索引为负,新值将添加到数组的开头,如果索引为正,则添加到数组的结尾。 现存
jsonb_set_lax 1 jsonb_set_lax ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean [, null_value_treatment text ]] ) → jsonb —
如果 new_value 不是 NULL,则行为与 jsonb_set 完全相同。否则,根据 null_value_treatment 的值进行处理,其值必须是'raise_exception'、'use_json_null'、'delete_key' 或'return_target' 之一。默认值为'use_json_null'。 现存
jsonb_strip_nulls 1 jsonb_strip_nulls ( target jsonb [,strip_in_arrays boolean ] ) → jsonb 181 次
递归地删除给定 JSON 值中所有值为 null 的对象字段。如果 strip_in_arrays 为 true(默认值为 false),那么数组中的 null 元素也会被删除;否则不会删除。裸露的 null 值永远不会被删除。 现存
jsonb_to_record 1 jsonb_to_record ( jsonb ) → record —
将顶级 JSON 对象展开为具有由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)输出记录由 JSON 对象的字段填充,与上面描述的 json[b]_populate_record 的方式相同。由于没有输入记录值,不匹配的列总是用空值填充。 现存
jsonb_to_recordset 1 jsonb_to_recordset ( jsonb ) → setof record —
将顶级 JSON 对象数组展开为一组由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
jsonb_typeof 1 jsonb_typeof ( jsonb ) → text —
以文本字符串形式返回顶级 JSON 值的类型。可能的类型有 object、array、string、number、boolean 和 null。(null 的结果不应与 SQL NULL 混淆;参见示例。) 现存
row_to_json 1 row_to_json ( record [, boolean ] ) → json 9.42 次
将 SQL 复合值转换为 JSON 对象。该行为与 to_json 相同,只是如果可选布尔参数为真,换行符将在顶级元素之间添加。 现存
to_json 1 to_json ( anyelement ) → json 9.41 次
将任何 SQL 值转换为 json 或 jsonb。数组和复合值递归地转换为数组和对象(多维数组在 JSON 中变成数组的数组)。否则,如果存在从 SQL 数据类型到 json 的类型转换,则类型转换函数将用于执行转换;[a] 否则,将生成一个标量 JSON 值。对于除数字、布尔值或空值之外的任何标量,将使用文本表示,并根据需要进行转义,使其成为有效的 JSON 字符串值。 现存
to_jsonb 1 to_jsonb ( anyelement ) → jsonb —
将任何 SQL 值转换为 json 或 jsonb。数组和复合值递归地转换为数组和对象(多维数组在 JSON 中变成数组的数组)。否则,如果存在从 SQL 数据类型到 json 的类型转换,则类型转换函数将用于执行转换;[a] 否则,将生成一个标量 JSON 值。对于除数字、布尔值或空值之外的任何标量,将使用文本表示,并根据需要进行转义,使其成为有效的 JSON 字符串值。 现存

本站手册收录 jsonb_path_query_first 的版本:121314.2515.2016.1617.1218.719rc220 devel

签名与示例依据同版本 PostgreSQL 手册,中文说明来自已核对的同版本手册与审阅译文,最后同步 2026-11-13。

译文有误请提交到 pgsty/pgdoc;本站渲染或数据的问题提交到 pgsty/pgweb。