Union 和 Union All in SAP 哈纳

SAP HANA Operator 可用于计算、值比较或分配值。

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),其中一些值是共同的。

选择 OperaSAT HANA 中的

我们对这两个表使用集合运算符(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

)
订单 由元素;

选择 Opera职权范围

合并两个或多个查询的结果且不重复。
UNION ALL 选择 *

(

选择 ELEMENT

DHK_SCHEMA.TABLE1

UNION ALL

选择 ELEMENT

DHK_SCHEMA.TABLE2

)

订单 BY 元素;

选择 Opera职权范围

将两个或多个查询的结果全部重复并合并。
相交 选择 *

(

选择 ELEMENT

DHK_SCHEMA.TABLE1

相交

选择 ELEMENT

DHK_SCHEMA.TABLE2

)

订单 BY 元素;

选择 Opera职权范围

将两个或多个具有所有共同行的查询的结果合并起来。
选择 *

(

选择 ELEMENT

DHK_SCHEMA.TABLE1

选择 ELEMENT

DHK_SCHEMA.TABLE2

)

订单 BY 元素;

选择 Opera职权范围

获取第一个查询的输出并删除第二个查询选择的行