本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
串流 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.
存在运算符
测试关系表达式是否返回任何行;如果返回任何行,则返回 TRUE,否则返回 FALSE。
标量运算符
运算符类型
标量运算符的两大类是:
-
一元法:一元运算符仅对一个操作数进行运算。一元运算符通常以以下格式与其操作数一起出现:
operator operand -
Binary: 二元运算符对两个操作数进行运算。二元运算符及其操作数以这种格式出现:
operand1 operator operand2
下面的操作数描述中特别注明了一些使用不同格式的运算符。
如果给一个运算符一个空操作数,则结果几乎总是空值(有关异常,请参阅逻辑运算符主题)。
优先顺序
流式处理 SQL 遵循运算符的通常优先级:
-
计算带括号的子表达式。
-
计算一元运算符(例如 + 或-、逻辑 NOT)。
-
计算乘法和除法(* 和/)。
-
评估加法、减法(+ 和-)和逻辑组合(AND 和 OR)。
如果其中一个操作数为 NULL,则结果也为 NULL 如果操作数属于不同但可比较的类型,则结果将是精度最高的类型。如果操作数的类型相同,则结果将与操作数的类型相同。例如 5/2 = 2,而不是 2.5,因为 5 和 2 都是整数。
算术运算符
| 操作符 | 一元/二进制 | 描述 |
|---|---|---|
|
+ |
U |
求同 |
|
- |
U |
Negation |
|
+ |
B |
加 |
|
- |
B |
减 |
|
* |
B |
乘 |
|
/ |
B |
除 |
这些运算符中的每一个都按照正常的算术行为工作,但需要注意以下几点:
-
如果其中一个运算数为 NULL,则结果为 NULL
-
如果操作数属于不同但可比较的类型,则结果将是精度最高的类型。
-
如果操作数的类型相同,则结果将与操作数的类型相同。例如 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 |