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"}'::JSON | true |
<@ | 检查左边的 JSON 表达式是否是右边 JSON 表达式的子集,返回 1 表示 true,0 表示 false。 | SELECT '{"name":"Alice"}'::JSON <@ '{"name":"Bob"}'::JSON | false |
@@ | 检查指定的 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} |