Учебники

Teradata — операторы SET

Операторы SET объединяют результаты нескольких операторов SELECT. Это может выглядеть аналогично объединениям, но объединения объединяют столбцы из нескольких таблиц, тогда как операторы SET объединяют строки из нескольких строк.

правила

  • Количество столбцов в каждом операторе SELECT должно быть одинаковым.

  • Типы данных из каждого SELECT должны быть совместимы.

  • ORDER BY должен быть включен только в окончательный оператор SELECT.

Количество столбцов в каждом операторе SELECT должно быть одинаковым.

Типы данных из каждого SELECT должны быть совместимы.

ORDER BY должен быть включен только в окончательный оператор SELECT.

UNION

Оператор UNION используется для объединения результатов нескольких операторов SELECT. Это игнорирует дубликаты.

Синтаксис

Ниже приведен основной синтаксис оператора UNION.

SELECT col1, col2, col3… 
FROM  
<table 1> 
[WHERE condition] 
UNION  

SELECT col1, col2, col3… 
FROM  
<table 2> 
[WHERE condition];

пример

Рассмотрим следующую таблицу сотрудников и таблицу зарплат.

Сотрудник № Имя Фамилия JoinedDate DepartmentNo Дата рождения
101 Майк Джеймс 3/27/2005 1 1/5/1980
102 Роберт Williams 4/25/2007 2 3/5/1983
103 Питер Павел 3/21/2007 2 4/1/1983
104 Alex Стюарт 2/1/2008 2 11/6/1984
105 Роберт Джеймс 1/4/2008 3 12/1/1984
Сотрудник № Валовой дедукция NetPay
101 40000 4000 36000
102 80000 6000 74000
103 90000 7000 83000
104 75000 5000 70000

Следующий запрос UNION объединяет значение EmployeeNo из таблицы Employee и Salary.

SELECT EmployeeNo 
FROM  
Employee 
UNION 

SELECT EmployeeNo 
FROM  
Salary;

Когда запрос выполняется, он производит следующий вывод.

EmployeeNo 
----------- 
   101 
   102 
   103 
   104 
   105

СОЮЗ ВСЕХ

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

Синтаксис

Ниже приведен основной синтаксис оператора UNION ALL.

SELECT col1, col2, col3… 
FROM  
<table 1> 
[WHERE condition] 
UNION ALL 

SELECT col1, col2, col3…
FROM  
<table 2> 
[WHERE condition];

пример

Ниже приведен пример для оператора UNION ALL.

SELECT EmployeeNo 
FROM  
Employee 
UNION ALL 

SELECT EmployeeNo 
FROM  
Salary;

Когда вышеуказанный запрос выполняется, он производит следующий вывод. Вы можете видеть, что он также возвращает дубликаты.

 EmployeeNo 
----------- 
    101 
    104 
    102 
    105 
    103 
    101 
    104 
    102 
    103

ПЕРЕСЕЧЕНИЕ

Команда INTERSECT также используется для объединения результатов из нескольких операторов SELECT. Он возвращает строки из первого оператора SELECT, который имеет соответствующее совпадение во втором операторе SELECT. Другими словами, он возвращает строки, которые существуют в обоих инструкциях SELECT.

Синтаксис

Ниже приведен основной синтаксис оператора INTERSECT.

SELECT col1, col2, col3… 
FROM  
<table 1>
[WHERE condition] 
INTERSECT 

SELECT col1, col2, col3… 
FROM  
<table 2> 
[WHERE condition];

пример

Ниже приведен пример оператора INTERSECT. Он возвращает значения EmployeeNo, которые существуют в обеих таблицах.

SELECT EmployeeNo 
FROM  
Employee 
INTERSECT 

SELECT EmployeeNo 
FROM  
Salary; 

Когда вышеуказанный запрос выполняется, он возвращает следующие записи. EmployeeNo 105 исключен, поскольку он не существует в таблице SALARY.

EmployeeNo 
----------- 
   101 
   104 
   102 
   103 

МИНУС / КРОМЕ

Команды MINUS / EXCEPT объединяют строки из нескольких таблиц и возвращают строки, которые находятся в первом SELECT, но не во втором SELECT. Они оба возвращают одинаковые результаты.

Синтаксис

Ниже приведен основной синтаксис оператора MINUS.

SELECT col1, col2, col3 
FROM  
<table 1> 
[WHERE condition] 
MINUS 

SELECT col1, col2, col3 
FROM  
<table 2> 
[WHERE condition];

пример

Ниже приведен пример оператора MINUS.

SELECT EmployeeNo 
FROM  
Employee 
MINUS 

SELECT EmployeeNo 
FROM  
Salary;

Когда этот запрос выполняется, он возвращает следующую запись.