跳到主要内容

JSON 运算符

引入或更新: 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 表示 true,0 表示 false。SELECT '{"a":1,"b":2,"c":3}'::JSON ? 'b'true
?|检查给定数组中的任何字符串是否作为键或数组元素存在,返回 1 表示 true,0 表示 false。SELECT '{"a":1,"b":2,"c":3}'::JSON ?| ['b','e']true
?&检查给定数组中的每个字符串是否作为键或数组元素存在,返回 1 表示 true,0 表示 false。SELECT '{"a":1,"b":2,"c":3}'::JSON ?& ['b','e']false
@>检查左边的 JSON 表达式是否包含右边 JSON 表达式的所有键值对,返回 1 表示 true,0 表示 false。SELECT '{"name":"Alice","age":30}'::JSON @> '{"name":"Alice"}'::JSONtrue
<@检查左边的 JSON 表达式是否是右边 JSON 表达式的子集,返回 1 表示 true,0 表示 false。SELECT '{"name":"Alice"}'::JSON <@ '{"name":"Bob"}'::JSONfalse
@@检查指定的 JSON 路径表达式是否在 JSON 数据中匹配某些条件,返回 1 表示 true,0 表示 false。SELECT '{"a":1,"b":[1,2,3]}'::JSON @@ '$.a == 1'true
@?检查指定的 JSON 值是否通过 JSON 路径表达式返回任何项,返回 1 表示 true,0 表示 false。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}