- Categorias:
Funções de dados semiestruturados e estruturados (Conversão)
AS_<tipo_de_objeto>¶
Esta família de funções pode ser usada para realizar conversões rigorosas de valores de VARIANT em outros tipos de dados:
- Consulte também:
Notas de uso geral¶
Se o tipo de valor no argumento VARIANT não corresponder ao valor de saída, então NULL é retornado. Por exemplo, se AS_DATE() passar um valor VARIANT que não contenha um
DATE
, então NULL será devolvido.Se a entrada for NULL, a saída será NULL.
Exemplos¶
Calcule a média de todos os valores numéricos de uma coluna do tipo de variante na tabela vartab
:
Primeiro, criar a tabela e carregar os dados nela.
CREATE OR REPLACE TABLE vartab (n NUMBER(2), v VARIANT); INSERT INTO vartab SELECT column1 AS n, PARSE_JSON(column2) AS v FROM VALUES (1, 'null'), (2, null), (3, 'true'), (4, '-17'), (5, '123.12'), (6, '1.912e2'), (7, '"Om ara pa ca na dhih" '), (8, '[-1, 12, 289, 2188, false,]'), (9, '{ "x" : "abc", "y" : false, "z": 10} ') AS vals;Em segundo lugar, mostrar os tipos de dados dos valores (alguns dos quais são numéricos e outros não):
select n, as_real(v), typeof(v) from vartab order by n; +---+------------+------------+ | N | AS_REAL(V) | TYPEOF(V) | |---+------------+------------| | 1 | NULL | NULL_VALUE | | 2 | NULL | NULL | | 3 | NULL | BOOLEAN | | 4 | -17 | INTEGER | | 5 | 123.12 | DECIMAL | | 6 | 191.2 | DOUBLE | | 7 | NULL | VARCHAR | | 8 | NULL | ARRAY | | 9 | NULL | OBJECT | +---+------------+------------+Em terceiro lugar, calcular a média de todos os valores numéricos a partir da coluna
VARIANT
:select avg(as_real(v)) from vartab; +-----------------+ | AVG(AS_REAL(V)) | |-----------------| | 99.106666667 | +-----------------+