UNION ALL оператор SQLite

В этом учебном пособии вы узнаете, как использовать SQLite оператор UNION ALL с синтаксисом и примерами.

Описание

SQLite оператор UNION ALL используется для объединения результирующих наборов из 2 или более операторов SELECT. Он возвращает все строки из запроса и не удаляет повторяющиеся строки между различными операторами SELECT.

Каждый оператор SELECT в SQLite операторе UNION ALL должен иметь одинаковое количество полей в наборах результатов с одинаковыми типами данных.

Синтаксис

Синтаксис оператора UNION ALL в SQLite:

SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION ALL
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

Параметры или аргументы

expression1, expression2, ... expression_n
Столбцы или расчеты, которые вы хотите получить.

tables
Таблицы, из которых вы хотите получить записи. В операторе FROM должна быть указана хотя бы одна таблица.

WHERE conditions
Необязательный. Условия, которые должны быть выполнены для выбранных записей.

Примечание

  • В обоих операторах SELECT должно быть одинаковое количество выражений.
  • Имена столбцов из первого оператора SELECT используются в качестве имен столбцов для результирующего набора.

Пример - возврат одного поля

Ниже приведен пример SQLite оператора UNION ALL, который возвращает одно поле из нескольких операторов SELECT (и оба поля имеют одинаковый тип данных):

Этот SQLite оператор UNION ALL будет возвращать department_id несколько раз в вашем результирующем наборе, если department_id находится в таблице departments и employees. SQLite оператор UNION ALL не удаляет дубликаты. Если вы хотите удалить дубликаты, попробуйте использовать оператор SQLite UNION.

Пример - использование ORDER BY

SQLite оператор UNION ALL может использовать предложение ORDER BY, чтобы упорядочить результаты.

Например:

В этом SQLite операторе UNION ALL, поскольку имена столбцов в двух операторах SELECT различаются, более выгодно ссылаться на столбцы в операторе ORDER BY по их позиции в результирующем наборе. В этом примере мы отсортировали результаты по department_name / last_name в порядке возрастания, как обозначено ORDER BY 2.

Поля department_name / last_name находятся в позиции № 2 в результирующем наборе.