Consultas · diagnóstico

Errores comunes con alias SQL

Aprende a detectar comas ausentes, alias fuera de alcance, referencias ambiguas y encabezados engañosos.

Lectura: 7–9 minConsulta depuradaPráctica correctiva
Contenido de esta guía

Por qué fallan los alias

Los alias suelen fallar por tres causas: una coma ausente, una referencia utilizada fuera de su alcance o un nombre ambiguo. El error puede producir un mensaje de sintaxis, pero también una consulta válida con encabezados o datos distintos de los esperados.

La forma de diagnosticarlo es separar las preguntas: ¿el alias nombra una columna de salida o una tabla?, ¿en qué cláusula se utiliza?, ¿sigue disponible el nombre original?

Error 1: olvidar una coma

Consulta válida, pero engañosa
SELECT nombre precio,
       stock
FROM productos;

Como AS puede omitirse, el motor puede interpretar precio como alias de nombre. La consulta devuelve nombres de producto bajo una cabecera llamada precio, no la columna numérica que esperabas.

Versión clara
SELECT nombre AS producto,
       precio,
       stock
FROM productos;

Escribir AS y alinear cada expresión en una línea hace visible la coma que separa columnas.

Error 2: usar el alias demasiado pronto

El alias aún no existe en WHERE
SELECT precio * stock AS valor_stock
FROM productos
WHERE valor_stock > 500;

WHERE decide qué filas pasan antes de construir la lista de salida. Repite la expresión en el filtro o calcula primero el alias en una subconsulta.

Error 3: mezclar alias y nombre original

Referencia incoherente
SELECT productos.nombre, p.precio
FROM productos AS p;

En PostgreSQL, cuando una tabla recibe el alias p, ese alias pasa a ser su nombre dentro de la consulta. Utiliza p.nombre y p.precio de forma coherente. Esta disciplina también evita ambigüedades en consultas con varias tablas.

Error 4: nombres de salida repetidos

Dos expresiones pueden compartir alias y el motor puede aceptar la consulta, pero el resultado será difícil de consumir desde una aplicación. Evita devolver dos columnas llamadas total; usa nombres como total_pedido y total_cliente.

Corrección completa

Productos cuyo inventario supera 500
SELECT p.nombre AS producto,
       ROUND(p.precio * p.stock, 2) AS valor_stock
FROM productos AS p
WHERE p.precio * p.stock > 500
ORDER BY valor_stock DESC;
Resultado comprobado en SQLite
productovalor_stock
Disco SSD801.0
Auriculares768.9
Monitor 24716.0

La consulta usa comas explícitas, mantiene el alias de tabla p, repite el cálculo en WHERE y reserva el alias de salida para la cabecera y la ordenación.

Comprueba lo aprendido

Intermedia · depuración

Repara una consulta con tres fallos

Corrige la consulta para devolver producto y precio_con_iva. Debe mostrar productos con precio base superior a 50 y ordenar por el precio calculado.
SELECT nombre producto precio * 1.21 AS precio_con_iva FROM productos WHERE precio_con_iva > 50 ORDER BY precio_con_iva;

Lista de comprobación

  • Escribe una expresión por línea y revisa las comas.
  • Usa AS en alias de columna cuando mejore la lectura.
  • No filtres en WHERE con un alias creado en el mismo SELECT.
  • Tras asignar un alias de tabla, referencia sus columnas con ese nombre.
  • Evita alias duplicados o demasiado crípticos.

Compatibilidad entre motores

El alcance exacto puede variar. MySQL admite alias de salida en GROUP BY, ORDER BY y HAVING, pero documenta que no son válidos en WHERE. PostgreSQL permite etiquetas de salida para ordenar y especifica que un alias de tabla sustituye al nombre original en el resto de la consulta. Las comillas simples y dobles tampoco significan lo mismo en todos los contextos: para código portable, evita alias con espacios y usa identificadores sencillos.

Qué debes recordar

  • Un alias puede ocultar una coma ausente.
  • El orden lógico de la consulta determina dónde existe.
  • Los alias de tabla deben usarse de forma coherente.
  • Una consulta válida también puede devolver encabezados engañosos.

Conceptos relacionados

Fuentes técnicas consultadas