类别:

半结构化和结构化数据函数 (提取)

GET_IGNORE_CASE

从对象中提取字段值;如果任一实参为 NULL,则返回 NULL。

备注

此函数类似于 GET,但对字段名称应用不区分大小写的匹配。

另请参阅:

GET

语法


Copy

OBJECT (或包含 OBJECT 的 VARIANT)

GET_IGNORE_CASE( <object> , <field_name> )

GET_IGNORE_CASE( <variant> , <field_name> )
Copy

MAP

GET_IGNORE_CASE( <map> , <key> )
Copy

实参

variant

计算结果为包含 ARRAY 或 OBJECT 的 VARIANT 的表达式。

object

计算结果为包含键值对的 OBJECT 的表达式。

field_name

计算结果为 VARCHAR 的表达式。这指定了您想要检索值的键值对中的键。

field_name 不能是空字符串。

如果 object结构化 OBJECT,则必须为 field_name 指定一个常数。

如果 object 不包含指定键:

  • 如果 object 为半结构化 OBJECT,则该函数返回 NULL。

  • 如果 object 是结构化 OBJECT,则会发生错误。

map

计算结果为 MAP 的表达式。

key

您要检索其值的键值对中的键。

如果 map 不包含指定的键,则该函数返回 NULL。

返回

  • 返回值是 ARRAY 的指定元素,或者是对应于 OBJECT 中键值对的指定键的值。

  • 如果输入对象是半结构化 OBJECT、ARRAY 或 VARIANT,则该函数返回 VARIANT。数据类型为 VARIANT,因为:

    • 在 ARRAY 中,每个元素都属于 VARIANT 类型。

    • 在 OBJECT 中,每个键值对中的值都是 VARIANT 类型。

  • 如果输入对象是 结构化 OBJECT、结构化 ARRAY或 MAP,该函数返回为该对象指定的类型的值。

    例如,如果输入对象的类型是 ARRAY(NUMBER),则该函数返回 NUMBER。

使用说明

  • 此函数返回它找到的第一个完全匹配项。如果函数仅找到不明确(不区分大小写)的匹配项,则返回其中一个匹配项的值;但是,不能保证首先匹配哪个不明确的字段名称。

  • GET_IGNORE_CASE 是一个二进制函数,可以通过以下方式调用:

    • object 是一个 OBJECT 值; field_name 是一个字符串值,可以是常量或表达式。

      此 GET_IGNORE_CASE 变体从对象值中提取具有所提供名称的字段的值。

    • v 是一个 VARIANT 值; field_name 是一个字符串值,可以是常量或表达式。

      与 GET_IGNORE_CASE 和 object 的工作方式类似,但还会检查 v 是否包含对象值(如果 v 不包含对象,则返回 NULL)。

示例

从对象中提取字段值。该函数返回完全匹配的值:

SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3, "AA":4}')),'aA') as output;

+--------+
| OUTPUT |
|--------|
| 2      |
+--------+
Copy

从对象中提取字段值。该函数找不到完全匹配项,因此返回一个不明确的匹配项:

SELECT GET_IGNORE_CASE(TO_OBJECT(PARSE_JSON('{"aa":1, "aA":2, "Aa":3}')),'AA') as output;

+--------+
| OUTPUT |
|--------|
| 3      |
+--------+
Copy

有关更详细的示例,请参阅 查询半结构化数据

语言: 中文