比较操作符

Presto 支持的比较操作如下所示:

操作符 说明
< 小于
> 大于
<= 小于等于
>= 大于等于
= 等于
<>/!= 不等于
[NOT] BETWEEN 值 X [不]介于 min 和 max 之间
IS [NOT] NULL 判断是否为 NULL
IS [NOT] DISTINCT FROM 用于比较两个值是否一致。一般情况下,NULL作为未定义数据存在,任何有NULL 参与的比较都会返回NULL。但是IS [NOT] DISTINCT FROMNULL作为值处理,返回TRUEFALSE

比较函数

Presto 提供了如下几个比较操作相关的函数:

  • GREATEST

    返回最大值。

    示例:GREATEST(1, 2)

  • LEAST

    返回最小值。

    示例:LEAST(1, 2)

比较相关的修饰谓语

Presto 还提供了几个比较相关的修饰谓语,可以增强比较语义的表达能力。使用方式如下:

<EXPRESSION><OPERATOR><QUANTIFIER> (<SUBQUERY>)

例如:

SELECT 'hello' = ANY (VALUES 'hello', 'world'); -- true
SELECT 21 < ALL (VALUES 19, 20, 21); -- false
SELECT 42 >= SOME (SELECT 41 UNION ALL SELECT 42 UNION ALL SELECT 43); -- true

其中,ANY,ALL,SOME就是比较修饰谓语。

  • A = ALL (...) A 和所有值相等,则返回 TRUE
  • A <> ALL (...) A 和所有值不相等,则返回 TRUE
  • A < ALL (...) A 小于所有值,则返回 TRUE
  • A = ANY (...) A 只要等于其中一个值,则返回 TRUE,等价与A IN (...)
  • A <> ANY (...) A 只要和其中一个值不相等,则返回 TRUE,等价与A IN (...)
  • A < ANY (...) A 只要小于其中一个值,则返回 TRUE

ANYSOME含义相同,使用时可以互换。