2009-04-28 9 views
21

Me gustaría volver a formatear algunas sentencias de SQL que son una sola cadena con nuevas líneas en algo que es mucho más fácil de leer.Algoritmo para sangrar cuidadosamente las sentencias de SQL (la implementación de Python sería agradable)

No conozco personalmente un buen estilo de codificación para sangrar SQL: ¿cómo deberían representarse las consultas anidadas/cláusulas where/left joins/etc para maximizar la legibilidad?

¿Alguien ha visto un algoritmo de impresión bonita que hace esto ya? En Python sería aún mejor.

Respuesta

36

Puede intentar sqlparse. Es un módulo de Python que proporciona un formato de SQL simple. Una demostración en línea está disponible here.

+0

¡Eso parece exactamente lo que estaba buscando, gracias! –

+0

Gracias por eso Andi, esto se ve muy bien. –

+0

Y acabo de notar que es su aplicación. –

3

Personalmente uso SQL Inform para el formateo SQL rápido, que está escrito en Java y desafortunadamente no es de código abierto, por lo que no hay acceso al algoritmo subyacente.

-2

No sabe si responde a su pregunta, pero generalmente utilizan esta estrategia

SELECT what1, what2, etc, 
FROM table 
WHERE condition 
    AND condition 
    AND condition 
ORDER BY whatever 

Pero solo soy yo. No creo que existan las herramientas automáticas adecuadas.

2

Anteriormente utilicé SQL Complete de Devart para formatear SQL, pero ahora hay un embellecedor de SQL gratuito en línea con SQL Complete - SQL Formatter que es realmente rico en funciones y fácil de usar incluso para un principiante.

+0

¡Un servicio en línea es una gran idea, gracias! – qris

Cuestiones relacionadas