Union 和 Union All in SAP 哈纳
SAP HANA Opera职权范围
- 一元和二元 Opera器
- 算术 Opera器
- 串 Opera职权范围
- 竞品对比 Opera器
- 合乎逻辑 Opera器
- 选择 Opera器
一元和二元 Opera器
Opera器 | 操作 | 描述 |
---|---|---|
一元 | 一元运算符适用于一个操作数 | 一元加法运算符(+) 一元否定运算符(-) 逻辑否定(NOT) |
二进制 | 二进制 Operator 适用于两个操作数 | 乘法运算符 ( *, / ) 加法运算符 ( +,- ) 比较运算符 ( =,!=,<,>,<=,>=) 逻辑运算符 ( AND, OR ) |
算术 Opera器
- 加法 (+)
- 减法 (-)
- 乘法 ( * )
- 分配 ( / )
串 Opera器
一个字符串 Operator 是一个连接运算符,它将两个项目(例如字符串,表达式或常量)组合为一个。
使用两个竖线“||”作为连接运算符。
竞品对比 Opera器
比较运算符用于比较两个操作数。以下是比较运算符的列表 Opera托尔
- 等于 ( = )
- 大于 ( > )
- Less 比 ( < )
- 大于或等于 ( > = )
- Less 大于或等于 ( < = )
- 不等于(!=,<>)
合乎逻辑 Opera器
搜索条件中使用逻辑运算符。
例如 WHERE 条件1 AND / OR / NOT 条件2
以下是逻辑运算符的列表 -
- AND – (例如 WHERE 条件 1 AND 条件 2)
如果条件 1 和条件 2 都为真,则组合条件为真,否则为假。 - 或 – (例如 WHERE 条件 1 或条件 2)
如果条件 1 或条件 2 为真,则组合条件为真,如果两个条件都为假,则组合条件为假。 - NOT – (例如 WHERE NOT 条件)
如果条件为假,则非条件为真。
选择 Opera职权范围
- UNION — 组合两个或多个选择语句或查询而不重复。
- UNION ALL – 组合两个或多个选择语句或查询,包括所有重复的行。
- INTERSECT — 组合两个或多个选择语句或查询,并返回所有公共行。
- EXCEPT – 获取第一个查询的输出并删除第二个查询选择的行。
例如 我有两个表(表 1、表 2),其中一些值是共同的。
我们对这两个表使用集合运算符(Union、Union ALL、Intersect、Except) SQL 如下 -
创建表 1- SQL 脚本
CREATE COLUMN TABLE DHK_SCHEMA.TABLE1 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');
创建表 2- SQL 脚本
CREATE COLUMN TABLE DHK_SCHEMA.TABLE2 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');
备注:此处“DHK_SCHEMA”是架构名称,用户可以在 SQL 因此。
选择 Opera示例如下
Opera器 | SQL查询 | 输出 | 使用 |
---|---|---|---|
UNION | 选择 *
从 ( 选择 ELEMENT 从 DHK_SCHEMA.TABLE1 UNION 选择 ELEMENT 从 DHK_SCHEMA.TABLE2 ) |
合并两个或多个查询的结果且不重复。 | |
UNION ALL | 选择 *
从 ( 选择 ELEMENT 从 DHK_SCHEMA.TABLE1 UNION ALL 选择 ELEMENT 从 DHK_SCHEMA.TABLE2 ) 订单 BY 元素; |
将两个或多个查询的结果全部重复并合并。 | |
相交 | 选择 *
从 ( 选择 ELEMENT 从 DHK_SCHEMA.TABLE1 相交 选择 ELEMENT 从 DHK_SCHEMA.TABLE2 ) 订单 BY 元素; |
将两个或多个具有所有共同行的查询的结果合并起来。 | |
除 | 选择 *
从 ( 选择 ELEMENT 从 DHK_SCHEMA.TABLE1 除 选择 ELEMENT 从 DHK_SCHEMA.TABLE2 ) 订单 BY 元素; |
获取第一个查询的输出并删除第二个查询选择的行 |