Scenario
A slow-query log handed you a SELECT statement as one unbroken line, and product wants "just one more filter" added to it. One-line SQL hides exactly the things that make edits dangerous: where the JOIN condition ends, which ANDs belong to which clause, and whether an ORDER BY is quietly sorting the whole table. Format the query before touching the WHERE clause — reviewing SQL you cannot see the shape of is guessing.
Broken input
select u.id,u.email,o.total from users u join orders o on o.user_id=u.id where o.status='paid' and o.total>100 order by o.created_at desc
Goal
Use SQL Formatter to expose the query's clause structure — SELECT list, JOIN condition, WHERE filters, ORDER BY — so the planned change lands in the right clause.
Tool sequence
- Open SQL Formatter.
- Paste the one-line query from the log without editing it first; the formatter handles casing and spacing.
- Read the formatted output clause by clause: two tables joined on
o.user_id = u.id, filtered to paid orders over 100, newest first. - Confirm the boundary you care about —
and o.total > 100belongs to WHERE, not to the JOIN's ON condition, which changes both meaning and performance. - Make the edit on the formatted version, and keep the formatted before/after for the PR description so reviewers see the clause you changed.
Checkpoint output
SELECT u.id, u.email, o.total
FROM users u
JOIN orders o ON o.user_id = u.id
WHERE o.status = 'paid'
AND o.total > 100
ORDER BY o.created_at DESC
The join, the paid-status filter, and the total > 100 threshold each sit on their own line — a new condition now has an unambiguous place to go.
Common mistakes
- Editing dense SQL before seeing clause boundaries, then discovering the new AND attached to the ON condition instead of the WHERE.
- Changing join logic while "just reformatting" — formatting must be a no-op on semantics.
- Missing an implicit filter because it stayed hidden in the middle of one long line.
- Formatting with a dialect that rewrites quoting or identifiers the source database will reject.
Related tools and lessons
- Code Formatter - Format CSS, JS & TypeScript with Prettier.
- XML Formatter & Validator - Format, minify, and validate XML.
- JSON Formatter - Format, minify, and filter JSON by keys.
- Related lesson: Clean Up a Snippet Before Reviewing It
- Related lesson: Inspect and Fix a Messy XML Response