- Categorias:
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:
Sintaxe¶
OBJECT (ou VARIANT contendo um OBJECT)
GET_IGNORE_CASE( <object> , <field_name> )
GET_IGNORE_CASE( <variant> , <field_name> )
MAP
GET_IGNORE_CASE( <map> , <key> )
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 parafield_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 efield_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 efield_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 sev
contém um valor de objeto (e retorna NULL sev
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 |
+--------+
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 |
+--------+
Para exemplos mais detalhados, consulte Consulta de dados semiestruturados.