跳到主要内容
跳到主要内容

比较函数

比较规则

下面的比较函数返回 01,数据类型为 UInt8。只有同一组内的值可以进行比较(例如 UInt16UInt64),而不能跨组比较(例如 UInt16DateTime)。数字和字符串之间的比较是可能的,同时字符串与日期和日期与时间之间的比较也是可能的。对于元组和数组,比较是按字典顺序进行的,意味着对左侧和右侧的元组/数组中的每个对应元素进行比较。

可以比较的类型有:

  • 数字和小数
  • 字符串和固定字符串
  • 日期
  • 带时间的日期
  • 元组(字典序比较)
  • 数组(字典序比较)
备注

字符串是逐字节比较的。如果其中一个字符串包含UTF-8编码的多字节字符,这可能导致意外结果。一个以另一个字符串 S2 为前缀的字符串 S1 被认为比 S2 更长。

equals

引入于:v1.1

比较两个值是否相等。

语法

equals(a, b)
        -- a = b
        -- a == b

参数

  • a — 第一个值。* - b — 第二个值。*

返回值

如果 a 等于 b,则返回 1,否则返回 0 UInt8

示例

使用示例

SELECT 1 = 1, 1 = 2;
┌─equals(1, 1)─┬─equals(1, 2)─┐
│            1 │            0 │
└──────────────┴──────────────┘

greater

引入于:v1.1

比较两个值的大小关系。

语法

greater(a, b)
    -- a > b

参数

  • a — 第一个值。* - b — 第二个值。*

返回值

如果 a 大于 b,则返回 1,否则返回 0 UInt8

示例

使用示例

SELECT 2 > 1, 1 > 2;
┌─greater(2, 1)─┬─greater(1, 2)─┐
│             1 │             0 │
└───────────────┴───────────────┘

greaterOrEquals

引入于:v1.1

比较两个值的大小或相等关系。

语法

greaterOrEquals(a, b)
    -- a >= b

参数

  • a — 第一个值。* - b — 第二个值。*

返回值

如果 a 大于或等于 b,则返回 1,否则返回 0 UInt8

示例

使用示例

SELECT 2 >= 1, 2 >= 2, 1 >= 2;
┌─greaterOrEquals(2, 1)─┬─greaterOrEquals(2, 2)─┬─greaterOrEquals(1, 2)─┐
│                     1 │                     1 │                     0 │
└───────────────────────┴───────────────────────┴───────────────────────┘

less

引入于:v1.1

比较两个值的大小关系。

语法

less(a, b)
    -- a < b

参数

  • a — 第一个值。* - b — 第二个值。*

返回值

如果 a 小于 b,则返回 1,否则返回 0 UInt8

示例

使用示例

SELECT 1 < 2, 2 < 1;
┌─less(1, 2)─┬─less(2, 1)─┐
│          1 │          0 │
└────────────┴────────────┘

lessOrEquals

引入于:v1.1

比较两个值的大小或相等关系。

语法

lessOrEquals(a, b)
-- a <= b

参数

  • a — 第一个值。* - b — 第二个值。*

返回值

如果 a 小于或等于 b,则返回 1,否则返回 0 UInt8

示例

使用示例

SELECT 1 <= 2, 2 <= 2, 3 <= 2;
┌─lessOrEquals(1, 2)─┬─lessOrEquals(2, 2)─┬─lessOrEquals(3, 2)─┐
│                  1 │                  1 │                  0 │
└────────────────────┴────────────────────┴────────────────────┘

notEquals

引入于:v1.1

比较两个值是否不相等。

语法

notEquals(a, b)
    -- a != b
    -- a <> b

参数

  • a — 第一个值。* - b — 第二个值。*

返回值

如果 a 不等于 b,则返回 1,否则返回 0UInt8

示例

使用示例

SELECT 1 != 2, 1 != 1;
┌─notEquals(1, 2)─┬─notEquals(1, 1)─┐
│               1 │               0 │
└─────────────────┴─────────────────┘