Tuple(T1, T2, ...)
一个由多个元素组成的元组,每个元素都有各自的类型。元组必须至少包含一个元素。
元组用于对列进行临时分组。在查询中使用 IN 表达式时可以对列进行分组,也可用于指定 lambda 函数的某些形式参数。更多信息请参阅 IN 运算符 和 高阶函数 章节。
元组可以作为查询结果返回。在这种情况下,对于除 JSON 以外的文本格式,值会以逗号分隔并包裹在圆括号中。在 JSON 格式中,元组会以数组形式输出(使用方括号)。
创建元组
你可以使用函数创建元组:
创建元组的示例:
一个元组(Tuple)可以只包含一个元素
示例:
语法 (tuple_element1, tuple_element2) 可用于在不调用 tuple() 函数的情况下创建一个包含多个元素的元组。
示例:
数据类型检测
在动态创建 tuple 时,ClickHouse 会将 tuple 参数的类型推断为能够容纳给定参数值的最小类型。 如果该值为 NULL,则推断出的类型为 Nullable。
自动数据类型检测示例:
引用 Tuple 元素
Tuple 元素可以通过名称或索引进行引用:
结果:
使用 Tuple 的比较操作
两个 Tuple 的比较是通过从左到右依次比较它们的元素来完成的。若第一个 Tuple 的某个元素大于(小于)第二个 Tuple 中对应的元素,则认为第一个 Tuple 大于(小于)第二个 Tuple;否则(当这两个元素相等时),继续比较下一个元素。
示例:
实际案例: