Алгоритм аккуратного отступления операторов SQL (было бы неплохо реализовать Python) - PullRequest
22 голосов
/ 28 апреля 2009

Я бы хотел переформатировать некоторые операторы SQL, представляющие собой одну строку с символами новой строки, во что-то, что гораздо проще для чтения.

Лично я не знаю хорошего стиля кодирования для отступа SQL - как должны представляться вложенные запросы / где предложения / левые соединения / и т. Д., Чтобы максимизировать читабельность?

Кто-нибудь видел симпатичный алгоритм печати, который это уже делает? В Python было бы еще лучше.

Ответы [ 5 ]

39 голосов
/ 28 апреля 2009

Вы можете попробовать sqlparse . Это модуль Python, который обеспечивает простое форматирование SQL. Демоверсия онлайн здесь .

3 голосов
/ 28 апреля 2009

Возможно, одна из трудностей при поиске инструмента состоит в том, что существует так много разных «стандартных» соглашений о форматировании SQL. Вот два SO вопроса, которые описывают предпочтения людей:

3 голосов
/ 28 апреля 2009

Лично я использую SQL Inform для быстрого форматирования SQL, который написан на Java и, к сожалению, не является открытым исходным кодом, поэтому нет доступа к базовому алгоритму.

2 голосов
/ 15 мая 2013

Ранее я использовал SQL Complete от Devart для форматирования SQL, но теперь есть бесплатный онлайн-инструмент SQL, работающий на SQL Complete - SQL Formatter он действительно многофункциональный и простой в использовании даже для начинающих ,

0 голосов
/ 28 апреля 2009

Не знаю, отвечает ли он на ваш вопрос, но я обычно использую эту стратегию

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

Но это только я. Я не думаю, что существуют правильные автоматические инструменты.

...