逻辑运算符¶
逻辑运算符返回针对一个或两个输入表达式的特定布尔运算的结果。逻辑运算符也称为布尔运算符。
逻辑运算符只能用作谓词(例如,在 WHERE 子句中)。输入表达式必须是谓词。
逻辑运算符列表¶
运算符 |
语法示例 |
描述 |
|---|---|---|
|
|
同时匹配两个表达式( |
|
|
与表达式不匹配。 |
|
|
匹配任一表达式。 |
这些运算符的优先顺序如下所示(从高到低):
NOT
AND
OR
示例¶
以下示例使用逻辑运算符:
在对表数据的查询中使用逻辑运算符¶
创建表并插入数据:
执行使用单个逻辑运算符的查询¶
在各种查询的 WHERE 子句中使用单个逻辑运算符:
显示逻辑运算符的优先级¶
以下示例显示了逻辑运算符的优先级。
第一个示例表明 AND 的优先级高于 OR 的优先级。查询返回匹配这些条件的行:
b等于Down。
OR
a等于8ANDb等于Up。
您可以使用 WHERE 子句中的括号来更改优先级。例如,以下查询返回匹配这些条件的行:
b等于DownORa等于8。
AND
b等于Up。
下一个示例表明 NOT 的优先级高于 AND 的优先级。例如,以下查询返回匹配这些条件的行:
aNOT 等于15。
AND
b等于Down。
您可以使用 WHERE 子句中的括号来更改优先级。例如,以下查询返回的行 NOT 匹配这两个条件:
a等于15。
AND
b等于Down。
在对布尔值的查询中使用逻辑运算符¶
创建表并插入数据:
以下查询使用 OR 运算符返回 a 或 b 为 TRUE 的行:
以下查询使用 AND 运算符返回 a 和 b 都是 TRUE 的行:
以下查询使用 AND 运算符和 NOT 运算符返回 b 为 TRUE、a 为 FALSE 的行:
以下查询使用 AND 运算符和 NOT 运算符返回 a 为 TRUE、b 为 FALSE 的行:
显示逻辑运算符的“真值表”¶
接下来的几个示例显示了布尔列中逻辑运算符的“真值表”。有关 Snowflake 中布尔值行为的详细信息,请参阅 三元逻辑。
创建新表和数据:
此示例显示了 OR 运算符的真值表:
此示例显示了 AND 运算符的真值表: