SQL UNION vs UNION ALL: Duplicate Rules and Performance
By Sharon Ben-Moshe · August 16, 2026 · 1 min read
Sharon Ben-Moshe is the founder of sqlfmt, a browser-based SQL formatter and validator with misspelled-keyword suggestions across PostgreSQL, MySQL, SQLite, SQL Server, and BigQuery.
UNION removes duplicate rows; UNION ALL keeps every row. Learn compatibility rules, ordering scope, and how to choose the correct set operator.
Quick answer
UNION combines compatible result sets and removes duplicate output rows by default. UNION ALL combines the same kind of result sets but retains every row, including duplicates. Use UNION only when deduplication is part of the requirement; otherwise UNION ALL preserves the full input.
Keep reading
The Comprehensive Guide to SQL Data Types: Storage, Precision, and Cross-Dialect Portability
By Sharon Ben-Moshe · Oct 13, 2026
The complete guide to SQL data types across PostgreSQL, MySQL, SQL Server, and SQLite. Numeric precision, character sets, timestamps, and JSON.
Read postThe Definitive Guide to SQL Window Functions: Syntax, Framing, and Real-World Recipes
By Sharon Ben-Moshe · Oct 13, 2026
The comprehensive guide to SQL window functions. Master OVER, PARTITION BY, ORDER BY, window frames (ROWS vs RANGE), and ranking recipes.
Read postTry it now
Paste your SQL into sqlfmt — format, validate, and catch typos free in your browser.