📜  Teradata-SET运算符(1)

📅  最后修改于: 2023-12-03 15:35:18.471000             🧑  作者: Mango

Teradata SET运算符

Teradata数据库提供了一些基本的集合运算符,如UNION,INTERSECT和EXCEPT。但是,有时候我们需要执行更高级的集合操作,例如合并多个结果集,或者使用聚合函数在集合上进行操作。这时候,我们可以使用Teradata SET运算符。

SET运算符列表
  • UNION ALL:将两个结果集合并成一个,并显示所有行,包括重复的行。
  • UNION:将两个结果集合并成一个,仅显示不重复的行。
  • INTERSECT:显示两个结果集共同拥有的行。
  • MINUS(或EXCEPT):显示在第一个结果集中但不在第二个结果集中出现的行。
语法
SELECT column1, column2, ... 
FROM table1 
<set operator> 
SELECT column1, column2, ... 
FROM table2;
示例
-- SELECT语句定义多个子查询,并使用UNION ALL运算符将它们组合在一起
SELECT employee_id, hire_date
FROM employee
WHERE department = 'IT'
UNION ALL
SELECT employee_id, hire_date
FROM employee
WHERE department = 'Sales'
UNION ALL
SELECT employee_id, hire_date
FROM employee
WHERE department = 'Marketing';

-- 求两个表的共同行
SELECT emp_id 
FROM employee 
WHERE emp_salary > 50000 
INTERSECT 
SELECT emp_id 
FROM employee 
WHERE emp_bonus > 5000;

-- 查询两个表的差集
SELECT customer_id 
FROM customer 
MINUS 
SELECT customer_id 
FROM sales;
注意事项
  • Teradata SET运算符之间的查询必须具有相同数量和数据类型的列。
  • SET运算符通常比子查询或JOIN更高效,当您需要合并多个结果集或执行其他高级集合操作时,它们非常有用。