Categorias:

Funções de dados semiestruturados e estruturados (Extração)

GET_IGNORE_CASE

Extrai um valor de campo de um objeto; retorna NULL se qualquer um dos argumentos for NULL.

Nota

Esta função é semelhante a GET, mas aplica a correspondência que não diferencia maiúsculas e minúsculas a nomes de campos.

Consulte também:

GET

Sintaxe


Copy

OBJECT (ou VARIANT contendo um OBJECT)

GET_IGNORE_CASE( <object> , <field_name> )

GET_IGNORE_CASE( <variant> , <field_name> )
Copy

MAP

GET_IGNORE_CASE( <map> , <key> )
Copy

Argumentos

variant

Uma expressão que avalia como um VARIANT que contém um ARRAY ou um OBJECT.

object

Uma expressão que avalia como um OBJECT que contém pares chave-valor.

field_name

Uma expressão que avalia como um VARCHAR. Isto especifica a chave em um par chave-valor para o qual você deseja recuperar o valor.

field_name não pode ser uma cadeia de caracteres vazia.

Se object for um OBJECT estruturado, você deverá especificar uma constante para field_name.

Se object não contiver a chave especificada:

  • Se object for um OBJECT semiestruturado, a função retornará NULL.

  • Se object for um OBJECT estruturado, ocorrerá um erro.

map

Uma expressão que avalia como um MAP.

key

A chave em um par chave-valor para o qual você deseja recuperar o valor.

Se map não contiver a chave especificada, a função retornará NULL.

Retornos

  • O valor retornado é o elemento especificado do ARRAY, ou o valor que corresponde à chave especificada de um par chave-valor no OBJECT.

  • Se o objeto de entrada for um OBJECT, ARRAY ou VARIANT semiestruturado, a função retornará um VARIANT. O tipo de dados é VARIANT porque:

    • Em um ARRAY, cada elemento é do tipo VARIANT.

    • Em um OBJECT, o valor em cada par chave-valor é do tipo VARIANT.

  • Se o objeto de entrada for OBJECT estruturado, ARRAY estruturado ou MAP, a função retornará um valor do tipo especificado para o objeto.

    Por exemplo, se o tipo do objeto de entrada for ARRAY(NUMBER), a função retornará NUMBER.

Notas de uso

  • Esta função retorna a primeira correspondência exata que encontra. Se a função só encontrar correspondências ambíguas (não diferencia maiúsculas e minúsculas), ela retornará o valor para uma das correspondências; no entanto, não é possível garantir qual nome de campo ambíguo é correspondido primeiro.

  • GET_IGNORE_CASE é uma função binária que pode ser chamada das seguintes maneiras:

    • object é um valor OBJECT e field_name é um valor de cadeia de caracteres, que pode ser uma constante ou uma expressão.

      Esta variação de GET_IGNORE_CASE extrai o valor do campo com o nome fornecido do valor do objeto.

    • v é um valor VARIANT e field_name é um valor de cadeia de caracteres, que pode ser uma constante ou uma expressão.

      Funciona de forma semelhante a GET_IGNORE_CASE com object, mas adicionalmente verifica se v contém um valor de objeto (e retorna NULL se v não contém um objeto).

Exemplos

Extrair um valor de campo de um objeto. A função retorna o valor para a correspondência exata:

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

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

Extrair um valor de campo de um objeto. A função não consegue encontrar uma correspondência exata e, portanto, retorna uma das correspondências ambíguas:

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

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

Para exemplos mais detalhados, consulte Consulta de dados semiestruturados.