Teradata集合运算符

2025年3月17日 | 阅读 3 分钟

集合运算符组合来自多个SELECT语句的结果。这可能看起来类似于连接,但是连接组合来自不同表中的列,而集合运算符组合来自多个行的行。

集合运算符的规则

以下是指定集合运算符的规则,例如

  • 每个SELECT语句的列数应该相同。
  • 每个SELECT语句的数据类型必须兼容。
  • ORDER BY应该仅包含在最终的SELECT语句中。

Teradata SQL集合运算符

Teradata SQL支持以下集合运算符

集合运算符函数
INTERSECT它返回在各个SELECT语句生成的各个结果集中出现的所有行。
MINUS /
EXCEPT
结果是第一个SELECT语句返回的行,除了第二个SELECT语句也选择的行。
UNION它组合两个或多个SELECT语句的结果。

1. UNION

UNION语句用于组合来自多个SELECT语句的结果。它忽略重复项。

语法

以下是UNION语句的基本语法。

示例

考虑以下学生表T1和出勤表T2。

学号名字姓氏出生日期
1001迈克Richard1/2/1996
1002Robert威廉姆斯3/5/1995
1003彼得科林4/1/1994
1004Alexa斯图尔特11/6/1995
1005Robert彼得森12/1/1997

学号出席%
10012002090%
10021606072%
10031507068%
10042101095%

以下UNION查询组合来自T1和T2表的RollNo值。

当执行查询时,它给出以下输出,例如

RollNo
1001
1002
1003
1004
1005

2. UNION ALL

UNION ALL语句类似于UNION语句。它组合来自多个表的结果,包括重复行。

语法

以下是UNION ALL语句的基本语法。

示例

以下是UNION ALL语句的示例。

当执行上述查询时,它会产生以下输出。并且它也返回重复项。

RollNo
1001
1002
1003
1004
1005
1001
1002
1003
1004

3. INTERSECT

INTERSECT命令也用于组合来自多个SELECT语句的结果。

它返回第一个SELECT语句中具有与第二个SELECT语句中相匹配的行。

语法

以下是INTERSECT语句的基本语法。

示例

以下是INTERSECT语句的示例。它返回存在于两个表中的RollNo值。

当执行上述查询时,它将返回以下记录。由于RollNo 1005在T2表中不存在,因此被排除在外。

4. MINUS/EXCEPT

MINUS/EXCEPT命令组合来自多个表的行,并返回第一个SELECT语句中存在但不在第二个SELECT语句中的行。它们都返回相同的结果。

语法

以下是MINUS语句的基本语法。

示例

以下是MINUS语句的示例。

当执行此查询时,它给出以下输出。

RollNo
1005