В этом учебном пособии вы узнаете, как использовать SQLite оператор UNION ALL с синтаксисом и примерами.
Описание
SQLite оператор UNION ALL используется для объединения результирующих наборов из 2 или более операторов SELECT. Он возвращает все строки из запроса и не удаляет повторяющиеся строки между различными операторами SELECT.
Каждый оператор SELECT в SQLite операторе UNION ALL должен иметь одинаковое количество полей в наборах результатов с одинаковыми типами данных.
Синтаксис
Синтаксис оператора UNION ALL в SQLite:
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 (и оба поля имеют одинаковый тип данных):
1 2 3 4 5 |
SELECT department_id FROM departments UNION ALL SELECT department_id FROM employees; |
Этот SQLite оператор UNION ALL будет возвращать department_id несколько раз в вашем результирующем наборе, если department_id находится в таблице departments и employees. SQLite оператор UNION ALL не удаляет дубликаты. Если вы хотите удалить дубликаты, попробуйте использовать оператор SQLite UNION.
Пример - использование ORDER BY
SQLite оператор UNION ALL может использовать предложение ORDER BY, чтобы упорядочить результаты.
Например:
1 2 3 4 5 6 7 8 9 |
SELECT department_id, department_name FROM departments WHERE department_id >= 10 UNION ALL SELECT employee_id, last_name FROM employees WHERE last_name = 'Rassohin' ORDER BY 2; |
В этом SQLite операторе UNION ALL, поскольку имена столбцов в двух операторах SELECT различаются, более выгодно ссылаться на столбцы в операторе ORDER BY по их позиции в результирующем наборе. В этом примере мы отсортировали результаты по department_name / last_name в порядке возрастания, как обозначено ORDER BY 2.
Поля department_name / last_name находятся в позиции № 2 в результирующем наборе.