Qué indica realmente un error de sintaxis
El motor recibió texto que no encaja en una sentencia válida para ese dialecto. El mensaje suele señalar un token cercano al lugar donde el análisis dejó de ser posible, pero la causa puede estar unos caracteres antes: una coma sobrante, una comilla sin cerrar o una cláusula colocada fuera de orden.
No confundas sintaxis con lógica. Una consulta puede ser sintácticamente válida y, aun así, devolver filas equivocadas.
Método de diagnóstico: reduce antes de corregir
- Lee el mensaje completo y anota la palabra o símbolo cercano al error.
- Comprueba delimitadores: comillas, paréntesis y comas.
- Revisa el orden de cláusulas de la sentencia que estás escribiendo.
- Reduce la consulta: quita columnas o bloques hasta que vuelva a ejecutarse.
- Añade una pieza cada vez para localizar exactamente qué cambio rompe la sintaxis.
Tres errores reproducibles
1. Coma sobrante antes de FROM
SELECT nombre, precio,
FROM productos;En SQLite, esta sentencia falla cerca de FROM. El problema real está justo antes: la lista de columnas termina con una coma que anuncia otra expresión que nunca llega.
2. WHERE después de ORDER BY
SELECT nombre
FROM productos
ORDER BY precio
WHERE stock > 0;El orden de las cláusulas forma parte de la gramática. Para este caso, el filtro debe aparecer antes de la ordenación:
SELECT nombre
FROM productos
WHERE stock > 0
ORDER BY precio;3. Literal de texto sin cerrar
SELECT nombre
FROM productos
WHERE categoria = 'Audio;La comilla abre un literal pero no lo cierra. El analizador puede señalar el final de la sentencia porque sigue esperando el delimitador que falta.
Cuando la consulta es válida, pero no para tu motor
Los motores comparten una gran parte de SQL, pero no todas las extensiones. Un mensaje de sintaxis también puede aparecer cuando copias una cláusula admitida por otro producto o por otra versión. Antes de reordenar la consulta al azar, confirma la sintaxis en la documentación de tu motor.
Regla práctica: si la estructura parece coherente y el error aparece justo en una palabra específica, comprueba primero si esa palabra o variante existe en tu versión.
Error frecuente al depurar
Cambiar cinco cosas y volver a ejecutar
Si la consulta funciona después de muchos cambios simultáneos, no sabrás qué la arregló. Eso hace más difícil reconocer el patrón la próxima vez. Reduce el caso y modifica una sola hipótesis por intento.
Práctica correctiva
Corrige sin reescribir toda la consulta
Esta sentencia debería mostrar los productos con stock positivo, ordenados del más caro al más barato. Corrige únicamente el orden de las cláusulas.
SELECT nombre, precio
FROM productos
ORDER BY precio DESC
WHERE stock > 0;WHERE stock > 0 encima de ORDER BY.Solución razonada
SELECT nombre, precio
FROM productos
WHERE stock > 0
ORDER BY precio DESC;La consulta válida devuelve siete productos. El cambio no altera la intención: solo coloca WHERE en la posición sintáctica correspondiente.
Qué debes recordar
- El token señalado no siempre es la causa exacta; revisa también lo que aparece justo antes.
- Comas, comillas, paréntesis y orden de cláusulas explican muchos fallos de principiantes.
- Una sintaxis puede pertenecer a otro motor o versión.
- Reduce el caso y cambia una sola cosa por intento.