Formatierte Abfrage
Die Anwendung des Formatierers auf die obige Eingabe erzeugt:
SELECT
u.id,
u.name,
u.email,
o.total,
o.created_at
FROM users u
INNER JOIN orders o
ON u.id = o.user_id
WHERE
o.created_at >= '2024-01-01'
AND o.status = 'completed'
GROUP BY
u.id,
u.name,
u.email,
o.total,
o.created_at
HAVING COUNT(o.id) > 5
ORDER BY o.total DESC
LIMIT 100;
Warum SQL-Formatierung wichtig ist
Code-Review, Debugging, das Finden von Logikfehlern und Pull-Request-Diffs sind alle schneller mit formatiertem SQL.
SQL-Formatierungsregeln
Schlüsselwörter in Großbuchstaben, eine Spalte pro Zeile in SELECT-Listen, JOIN-Bedingungen in einer neuen eingerückten Zeile unter JOIN, WHERE-Bedingungen jeweils in eigener Zeile mit AND/OR am Anfang.
CTE-Formatierung
WITH
active_users AS (
SELECT id, name, email
FROM users
WHERE status = 'active'
)
SELECT ...
Fensterfunktionen
SELECT
user_id,
SUM(total) OVER (
PARTITION BY user_id
ORDER BY order_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS running_total
FROM orders;
Kommandozeilen- und IDE-Alternativen
SQLFluff (Lint und Fix), pg_format (PostgreSQL), SQL Tools Erweiterung in VS Code, integrierter Formatierer von DataGrip.