Skip to content
uencoder
TUTORIAL

How to Format SQL Queries

Beautify SQL queries with proper keyword alignment, indentation, and line breaks.

Problem

Your SQL query is a long single line and you need to make it readable for review and debugging.

Prerequisites

  • Understanding of SQL syntax
  • Familiarity with query clauses

Steps

  1. 1. Parse the SQL query

    The formatter parses the SQL to identify keywords, identifiers, strings, and comments. It recognizes clauses like SELECT, FROM, WHERE, JOIN, GROUP BY, and ORDER BY to determine the structure.

    Input
    SELECT id,name FROM users WHERE age>18 ORDER BY name
    Output
    parsed structure
  2. 2. Apply formatting rules

    Place each major clause on a new line. Indent subqueries and join conditions. Align column names in SELECT lists. Use consistent capitalization for keywords (upper or lower based on preference). Add spaces around operators.

    Input
    SELECT id,name FROM users WHERE age>18
    Output
    SELECT id, name\nFROM users\nWHERE age > 18
  3. 3. Handle dialect-specific syntax

    Different SQL dialects (PostgreSQL, MySQL, T-SQL) have unique syntax. Choose the correct dialect so the formatter parses functions, types, and keywords correctly. Misidentifying the dialect can cause formatting errors.

    Input
    PostgreSQL query
    Output
    dialect-aware formatting

Expected result

A readable SQL query with aligned keywords, indented subqueries, and consistent spacing.

Common errors

Formatter does not recognize a dialect-specific function
Select the correct SQL dialect. If the formatter still fails, the syntax may be unsupported; use a more capable formatter.
String literals are modified
A good formatter never alters string literal contents. If it does, it has a bug; use a different formatter.

Troubleshooting

  • If the formatted query executes differently, compare the original and formatted SQL character by character.
  • Comments should be preserved. If they are lost, use a formatter that supports comments.

Security limits

  • Formatting SQL does not execute it. However, never format untrusted SQL and then execute it — SQL injection is a separate concern.

Related tools

Related tasks

Ready to run it?

References