UNION ОПЕРАТОР - Oracle PL
Бази даних
UNION ОПЕРАТОР
Цей навчальний посібник Oracle пояснює, як використовувати Oracle операторUNION з синтаксисом та прикладами.
Oracle операторUNION використовується для об'єднання наборів результатів із 2-х або більше Oracle запитів SELECT. Він видаляє рядки, що повторюються, між різними запитами SELECT.
Кожен запит SELECT всередині оператора UNION повинен мати однакову кількість полів у результуючих наборах з однаковими типами даних.
Синтаксис оператора UNION у Oracle/PLSQL:
Параметри чи аргументи
expression1 , expression2 , expression_n — Стовпці або розрахунки, які ви хочете отримати. tables — Таблиці з яких потрібно отримати записи. WHERE conditions - Необов'язковий. Умови, які мають бути виконані для вибраних записів.
Примітка
- В обох запитах SELECT має бути однакова кількість виразів.
Приклад із одним полем
Наступний приклад Oracle оператора UNION повертає одне поле з двох запитів SELECT (і обидва поля мають один і той же тип даних):
У цьому прикладі оператора UNION, якщо supplier_id є в обох таблицях suppliers і order_details , то supplier_id з'являється один у наборі результатів. Оператор Oracle UNION видаляє дублікати. Якщо ви не хочете видалити дублікати, спробуйте використовувати Oracle оператора UNION ALL.
Приклад використання ORDER BY
Oracle оператор UNION може використовувати оператор ORDER BY для упорядкування результатів запиту.
У цьому прикладі UNION, оскільки імена стовпців у двох запитах SELECT відрізняються, то ORDER BY вигідніше посилатися на положення стовпців в результуючому наборі. В цьомуНаприклад, ми відсортували результати по supplier_name/company_name у порядку зростання, як це зазначено в ORDER BY 2 .
Поля supplier_name/company_name знаходяться в позиції #2 у результуючому наборі.
Поширені запитання
Питання: Мені потрібно порівняти дві дати і повернути кількість рядків поля, що базується на значенні дат. Наприклад, я маю в таблиці поле дати, яке називається дата останнього оновлення. Я маю перевірити, якщо TRUNC (last_updated_date)> = TRUNC (Sysdate-13).