Algorithm for neatly indenting SQL statements (Python implementation would be nice)

Simon Willison picture Simon Willison · Apr 28, 2009 · Viewed 9.3k times · Source

I'd like to reformat some SQL statements that are a single string with newlines in to something that's much easier to read.

I don't personally know of a good coding style for indenting SQL - how should nested queries / where clauses / left joins / etc by represented to maximise readability?

Has anyone seen a pretty-printing algorithm that does this already? In Python would be even better.

Answer

Andi Albrecht picture Andi Albrecht · Apr 28, 2009

You can try sqlparse. It's a Python module that provides simple SQL formatting. A online demo is available here.