Presentar valores ausentes con COALESCE
Objetivos
Al terminar podrás elegir una representación visible para un valor nulo sin cambiar la tabla de origen.
Concepto
COALESCE(a, b) devuelve el primer argumento que no es NULL. En una lista, evalúa los argumentos de izquierda a derecha. Puede ayudar a presentar una etiqueta, pero esa etiqueta no demuestra por qué faltaba el dato.
No reemplaces automáticamente un valor ausente por cero. Cero es un valor; NULL indica que no hay un valor registrado. En esta consulta se convierte el identificador opcional a texto solo para mostrarlo claramente.
Ejemplo
SELECT
payment_id,
COALESCE(CAST(rental_id AS CHAR), 'sin rental_id registrado') AS rental_reference
FROM payment
ORDER BY payment_id
LIMIT 12;La columna original sigue intacta. El texto sustituye NULL únicamente en esta salida y no afirma la causa de la ausencia.
Práctica guiada
- Quita
CASTy observa por qué una lista de argumentos de tipos distintos puede ser difícil de interpretar. - Compara
COALESCE(rental_id, 0)conIS NULL; explica por qué el cero puede inducir a error. - Cuenta cuántos pagos tienen
rental_id IS NULLsin mostrar otras columnas.
Reto
Construye una etiqueta que muestre el identificador real del alquiler como texto o sin dato. No cambies el esquema y añade una nota breve sobre lo que el valor ausente no permite concluir.
Quiz
¿Qué devuelve COALESCE(rental_id, 'sin dato') cuando rental_id es NULL?
- A. La etiqueta
sin datopara esa salida. - B. El número cero guardado en la tabla.
- C. Elimina la fila del resultado.
Respuesta: A. COALESCE elige el primer argumento no nulo disponible.
Comprobación
Ya distingues una representación de salida de un cambio en los datos. La próxima lección usa funciones de texto para crear etiquetas de presentación.