Existen 6 sentencias o expresiones condicionales en BigQuery y éstas son:
- CASE expr.
- CASE.
- COALESCE.
- IF.
- IFNULL.
- NULLIF.
CASE expr
Compara la expresión dada con cada cláusula ``WHEN`` sucesiva y produce el primer resultado donde los valores son iguales.
Ejemplo:
DECLARE evaluacion STRING SET evaluacion = 'sobresaliente'; SELECT CASE evaluacion WHEN 'bueno' THEN 8 WHEN 'excelente' THEN 9 WHEN 'sobresaliente' THEN 10 ELSE -1 as eval_result;
CASE
Evalúa la condición de cada cláusula ``WHEN`` sucesiva y produce el primer resultado donde la condición se evalúa como VERDADERO.
Ejemplo:
SELECT matematicas, historia, CASE WHEN matematicas > 9 THEN 'Sobresaliente' WHEN historia = 7 THEN 'Aceptable' ELSE 'Debes mejorar' END AS result_calf FROM calificaciones
COALESCE
Produce el valor de la primera expresión no NULL, si la hay, de lo contrario es NULL.
Ejemplo:
SELECT COALESCE(NULL, 'Es un nulo', 'Es un valor no nulo') as resultado;
IF
Si una expresión se evalúa como VERDADERO, produce un resultado especificado; de lo contrario, produce la evaluación para un resultado else.
Ejemplo:
DECLARE x INT64 DECLARE y INT64; SET x = 10; SET y = 20; SELECT x AS A, y AS B, IF(x < y, 'true', 'false') AS resultado;
IFNULL
Si una expresión se evalúa como NULL, produce un resultado especificado; de lo contrario, produce la expresión.
Ejemplo:
DECLARE valor INT64 DEFAULT 10; SELECT IFNULL(NULL, 0) as result; -- NULL SELECT IFNULL(valor, 0) as result; -- 10
NULLIF
Produce NULL si la primera expresión que coincide con otra se evalúa como VERDADERO; de lo contrario, devuelve la primera expresión.
Ejemplo:
DECLARE x INT64 DEFAULT 10; SELECT NULLIF(0, 0) as resultado; -- NULL SELECT NULLIF(x, 0) as resultado; -- 10
Más ejemplos en próximas entregas.
Enlaces:
https://cloud.google.com/bigquery/docs/reference/standard-sql/conditional_expressions