流式 SQL 运算符 - Amazon Kinesis Data Analytics
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

流式 SQL 运算符

子查询运算符

运算符在查询和子查询中使用,旨在合并或测试各种属性、特性或关系的数据。

后面的主题中介绍了可用运算符,这些运算符按以下类别进行分组:

IN 运算符

作为条件测试中的运算符,IN 将测试值列表、关系表达式或子查询中针对成员资格的标量或行值。

Examples: 1. --- IF column IN ('A','B','C') 2. --- IF (col1, col2) IN (    select a, b from my_table    )

如果在列表中、计算关系表达式的结果中或子查询返回的行中找到要测试的值,则返回 TRUE;否则返回 FALSE。

注意

IN 具有不同的含义且在 CREATE FUNCTION中使用。

EXISTS 运算符

测试关系表达式是否返回了任何行;如果返回了任何行,则返回 TRUE;否则返回 FALSE。

标量运算符

运算符类型

标量运算符的两个常规类包括:

  • 一元:一元运算符仅作用于一个操作数。一元运算符通常在出现时带有以下格式的操作数:

    operator operand
  • 二元:二元运算符作用于两个操作数。二元运算符的操作数采用以下格式:

    operand1 operator operand2

以下操作数描述中特意指出了使用其他格式的一些运算符。

如果向运算符提供了 null 操作数,则结果几乎始终为 null (请参阅有关逻辑运算符的主题以了解例外情况)。

优先顺序

流式 SQL 遵循运算符的常规优先顺序:

  1. 计算带括号的子表达式。

  2. 计算一元运算符 (例如,+ 或 - 和逻辑 NOT)。

  3. 计算乘和除 (* 和 /)。

  4. 计算加和减 (+ 和 -) 以及逻辑组合 (AND 和 OR)。

如果其中一个操作数为 NULL,则结果也将为 NULL;如果操作数属于不同但可比较的类型,则结果将属于具有最大精度的类型。如果操作数属于同一类型,则结果将属于与操作数相同的类型。例如,5/2 = 2,而不是 2.5,因为 5 和 2 都是整数。

算术运算符

运算符 一元/二元 描述

+

U

求同

-

U

求反

+

B,

-

B,

*

B,

/

B,

这些运算符均根据正常算术行为运行,但请注意以下几点:

  1. 如果其中一个操作数为 NULL,则结果也为 NULL

  2. 如果操作数属于不同但可比较的类型,则结果将属于具有最大精度的类型。

  3. 如果操作数属于同一类型,则结果将属于与操作数相同的类型。例如,5/2 = 2,而不是 2.5,因为 5 和 2 都是整数。

示例

操作 结果

1 + 1

2

2.0 + 2.0

4.0

3.0 + 2

5.0

5 / 2

2

5.0 / 2

2.500000000000

5*2+2

12