Example 1
Combine two result sets and keep duplicates
Unlike UNION, UNION ALL keeps both Linus rows in the final output.
Source table data Rows loaded before the example query runs.
Setup
CREATE TABLE morning (name VARCHAR(50));
CREATE TABLE evening (name VARCHAR(50));
INSERT INTO
morning (name)
VALUES
('Ada'),
('Linus');
INSERT INTO
evening (name)
VALUES
('Linus'),
('Grace');Validated query Shared across supported engines.
SQL
SELECT
name
FROM
morning
UNION ALL
SELECT
name
FROM
evening
ORDER BY
name;Expected result Returned rows for the shared example.
| name |
|---|
| Ada |
| Grace |
| Linus |
| Linus |
The preserved duplicate row is the key behavior shown here.