2009-04-28 7 views
21

Vorrei riformattare alcune istruzioni SQL che sono una singola stringa con nuove righe in qualcosa che è molto più facile da leggere.Algoritmo per il rientro accurato delle istruzioni SQL (l'implementazione di Python sarebbe piacevole)

Non conosco personalmente uno stile di codifica valido per l'indentazione di SQL: come devono essere rappresentate le query nidificate/le clausole/i join di sinistra/etc rappresentati per massimizzare la leggibilità?

Qualcuno ha visto un algoritmo di stampa piuttosto che lo fa già? In Python sarebbe ancora meglio.

risposta

36

Si può provare sqlparse. È un modulo Python che fornisce una semplice formattazione SQL. Una demo online è disponibile here.

+0

Sembra proprio quello che stavo cercando, grazie! –

+0

Grazie per questo Andi, sembra molto bello. –

+0

E ho appena notato che è la tua app. –

3

Io personalmente uso SQL Inform per la creazione rapida di SQL, che è scritto in Java e purtroppo non è open source, quindi non c'è accesso all'algoritmo sottostante.

-2

Non so se si risponde alla tua domanda, ma io in genere utilizzare questa strategia

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

Ma sono solo io. Non penso che esistano strumenti automatici adeguati.

2

Ho già utilizzato SQL Complete di Devart per la formattazione di SQL, ma ora c'è un beautifier SQL online gratuito con SQL Complete - SQL Formatter è davvero ricco di funzionalità e facile da usare anche per un principiante.

+0

Un servizio online è una grande idea, grazie! – qris