跳到主要内容

JSON 操作符

Introduced or updated: v1.2.644
操作符描述例子结果
->使用索引或键检索 JSON 数组或对象,返回 JSON 对象。- 使用键:
SELECT '{"Databend": "Cloud Native Warehouse"}'::JSON -> 'Databend'
- 使用索引:
SELECT '["Databend", "Cloud Native Warehouse"]'::JSON -> 1
"Cloud Native Warehouse"
->>使用索引或键检索 JSON 数组或对象,返回字符串。- 使用键:
SELECT '{"Databend": "Cloud Native Warehouse"}'::JSON ->> 'Databend'
- 使用索引:
SELECT '["Databend", "Cloud Native Warehouse"]'::JSON ->> 1
Cloud Native Warehouse
#>通过指定键路径检索 JSON 数组或对象,返回 JSON 对象。SELECT '{"example": {"Databend": "Cloud Native Warehouse"}}'::JSON #> '{example, Databend}'"Cloud Native Warehouse"
#>>通过指定键路径检索 JSON 数组或对象,返回字符串。SELECT '{"example": {"Databend": "Cloud Native Warehouse"}}'::JSON #>> '{example, Databend}'Cloud Native Warehouse
?检查给定的字符串是否存在于 JSON 对象中作为键或数组,如果为真则返回 1,如果为假则返回 0。SELECT '{"a":1,"b":2,"c":3}'::JSON ? 'b'true
?|检查给定数组中的任何字符串是否存在作为键或数组元素,如果为真则返回 1,如果为假则返回 0。SELECT '{"a":1,"b":2,"c":3}'::JSON ?| ['b','e']true
?&检查给定数组中的每个字符串是否存在作为键或数组元素,如果为真则返回 1,如果为假则返回 0。SELECT '{"a":1,"b":2,"c":3}'::JSON ?& ['b','e']false
@>检查左侧 JSON 表达式是否包含右侧 JSON 表达式的所有键值对,如果为真则返回 1,如果为假则返回 0。SELECT '{"name":"Alice","age":30}'::JSON @> '{"name":"Alice"}'::JSONtrue
<@检查左侧 JSON 表达式是否为右侧 JSON 表达式的子集,如果为真则返回 1,如果为假则返回 0。SELECT '{"name":"Alice"}'::JSON <@ '{"name":"Bob"}'::JSONfalse
@@检查指定的 JSON 路径表达式是否与 JSON 数据中的某些条件匹配,如果为真则返回 1,如果为假则返回 0。SELECT '{"a":1,"b":[1,2,3]}'::JSON @@ '$.a == 1'true
@?检查是否为指定的 JSON 值通过 JSON 路径表达式返回任何项,如果为真则返回 1,如果为假则返回 0。SELECT '{"a":1,"b":[1,2,3]}'::JSON @? '$.b[3]'false
- '<key>'从 JSON 对象中删除键值对。SELECT '{"a":1,"b":2}'::JSON - 'a'{"b":2}
- <index>从数组中删除指定索引处的元素(负整数从末尾开始计数)。SELECT '[1,2,3]'::JSON - 2[1,2]
#-通过键和/或索引删除键值对或数组元素。SELECT '{"a":1,"b":[1,2,3]}'::JSON #- '{b,2}'{"a":1,"b":[1,2]}
||将多个 JSON 对象合并为一个SELECT '{"a": 1}'::JSON || {"B": 1}'::JSON;{"B":1,"a":1}