跳转到主要内容

bech32Decode

引入版本:v25.6.0 解码由 bech32 或 bech32m 算法生成的 Bech32 地址字符串。
与编码函数不同,bech32Decode 会自动处理带填充的 FixedStrings。
语法
参数
  • address — 要解码的 Bech32 字符串。StringFixedString
  • mode — 可选。传入 'raw' 可在解码时不将第一个字节剥离为 witness 版本。对于非 SegWit 地址 (例如 Cosmos SDK) ,请使用此选项。String
返回值 返回一个 (hrp, data) Tuple,表示编码该字符串时使用的值。data 采用二进制格式。Tuple(String, String) 示例 解码地址
Query
Response
测试网地址
Query
Response

bech32Encode

引入版本:v25.6.0 使用 Bech32 或 Bech32m 算法,对二进制数据字符串及人类可读部分 (HRP) 进行编码。
使用 FixedString 数据类型时,如果某个值未完全占满其长度,则会用空字符进行填充。 虽然 bech32Encode 函数会自动处理 hrp 参数的这种情况,但对于 data 参数,其值不得被填充。 因此,不建议将 FixedString 数据类型用于你的数据值,除非你能 确定它们的长度都相同,并确保你的 FixedString 列也设置为相同的长度。
语法
参数
  • hrp — 由 1 - 83 个小写字符组成的 String,用于指定编码中的“可读部分”。通常为 ‘bc’ 或 ‘tb’。StringFixedString
  • data — 要编码的二进制数据 String。StringFixedString
  • witver_or_variant — 可选。可以是 UInt* 见证版本 (默认值为 1,Bech32 为 0,Bech32m 为 1+) ,也可以是 String 编码变体:'bech32' (BIP173) 或 'bech32m' (BIP350) 。使用字符串变体时,不会预加见证版本字节——这对于 Cosmos SDK 等非 SegWit 地址是必需的。UInt*String
返回值 返回一个 Bech32 地址字符串,由可读部分、一个始终为 ‘1’ 的分隔符字符以及数据部分组成。该字符串长度不会超过 90 个字符。如果算法无法根据输入生成有效地址,则返回空字符串。String 示例 默认 Bech32m
Query
Response
Bech32 算法
Query
Response
自定义 HRP
Query
Response
Cosmos SDK 地址 (BIP173,不含见证版本)
Query
Response

bin

引入版本:v21.8.0 根据不同类型按以下规则,返回一个包含参数二进制表示的字符串: 语法
参数 返回值 返回一个包含该参数二进制表示的字符串。String 示例 简单整数
Query
Response
Float32 数字
Query
Response
Float64 数值
Query
Response
UUID 转换
Query
Response

bitPositionsToArray

引入版本:v21.7.0 此函数返回无符号整数的二进制表示中值为 1 的位的位置 (按升序排列) 。 有符号输入整数会先转换为无符号整数。 语法
参数
  • arg — 一个整数值。(U)Int*
返回值 返回一个数组,包含输入值的二进制表示中值为 1 的各个位的位置,并按升序排列。Array(UInt64) 示例 单个位被设置
Query
Response
所有位均已置位
Query
Response

bitmaskToArray

引入版本:v1.1.0 此函数将一个整数分解为若干个 2 的幂之和。 这些 2 的幂会以按升序排列的数组形式返回。 语法
参数 返回值 返回一个数组,其中包含按升序排列且其和等于输入数字的 2 的幂。Array(UInt64) 示例 基本示例
Query
Response
单个 2 的幂值
Query
Response

bitmaskToList

引入版本:v1.1.0 与 bitmaskToArray 类似,但返回由 2 的幂组成的逗号分隔字符串。 语法
参数 返回值 返回一个包含以逗号分隔的 2 的幂值的字符串。String 示例 基本示例
Query
Response

char

引入版本:v20.1.0 返回一个字符串,其长度等于传入参数的个数,其中每个字节 的值都对应相应参数的值。接受多个数值类型参数。 如果参数值超出 UInt8 数据类型的取值范围,则会将其转换为 UInt8,此过程中可能发生舍入和溢出。 语法
参数 返回值 返回由给定字节构成的字符串。String 示例 基础示例
Query
Response
构建任意编码
Query
Response

hex

引入版本:v1.1.0 根据以下针对不同类型的规则,返回一个包含参数十六进制表示的字符串: 该函数使用大写字母 A-F,且不使用任何前缀 (如 0x) 或后缀 (如 h) 。 语法
参数 返回值 返回参数的十六进制表示形式的字符串。String 示例 简单整数
Query
Response
Float32 数值
Query
Response
Float64 数值
Query
Response
UUID 转换
Query
Response

hilbertDecode

引入版本:v24.6.0 将 Hilbert 曲线索引解码回一个由无符号整数组成的元组,用于表示多维空间中的坐标。 hilbertEncode 函数一样,此函数有两种操作模式:
  • 简单模式
  • 扩展模式
简单模式 最多接受 2 个无符号整数作为参数,并生成一个 UInt64 编码。 扩展模式 接受一个范围掩码 (元组) 作为第一个参数,以及最多 2 个无符号整数作为 其他参数。掩码中的每个数都用于指定对应参数左移的位数, 从而在其取值范围内对该参数进行缩放。 当你希望取值范围 (或基数) 差异很大的 参数具有相近的分布时,范围扩展会很有帮助。例如:‘IP 地址’ (0...FFFFFFFF) 和 ‘国家代码’ (0...FF)。与编码函数一样,这最多仅限于 8 个 数值。 语法
参数 返回值 返回指定长度的元组。Tuple(UInt64) 示例 简单模式
Query
Response
单个参数
Query
Response
扩展模式
Query
Response
列的用法
Query
Response

hilbertEncode

引入于:v24.6.0 计算一组无符号整数对应的希尔伯特曲线编码。 该函数有两种工作模式:
  • 简单
  • 扩展
简单模式 最多接受 2 个无符号整数作为参数,并生成一个 UInt64 编码。 扩展模式 接受一个范围掩码 (Tuple) 作为 第一个参数,并接受最多 2 个无符号整数 作为其余参数。 掩码中的每个数都会指定对应参数左移的位数, 从而在其范围内对该参数进行缩放。 语法
参数
  • args — 最多两个 UInt 值,或 UInt 类型的列。UInt8/16/32/64
  • range_mask — 在扩展模式下,最多两个 UInt 值,或 UInt 类型的列。UInt8/16/32/64
返回值 返回一个 UInt64 编码值。UInt64 示例 简单模式
Query
Response
扩展模式
Query
Response
单个参数
Query
Response
扩展的单参数
Query
Response
列的用法
Query
Response

mortonDecode

引入版本:v24.6.0 将 Morton 编码 (ZCurve) 解码为对应的无符号整数 Tuple。 mortonEncode 函数一样,此函数有两种操作模式:
  • 简单模式
  • 扩展模式
简单模式 接受结果 Tuple 的大小作为第一个参数,编码值作为第二个参数。 扩展模式 接受范围掩码 (Tuple) 作为第一个参数,编码值作为第二个参数。 掩码中的每个数字用于配置范围收缩的幅度:
  • 1 - 不收缩
  • 2 - 收缩 2 倍
  • 3 - 收缩 3 倍 ⋮
  • 最多收缩 8 倍。
当你需要让取值范围 (或基数) 差异很大的参数获得相似的分布时, 范围扩展会很有帮助。例如:‘IP 地址’ (0...FFFFFFFF) 和 ‘国家代码’ (0...FF)。与编码函数一样,这里最多也只支持 8 个数字。 语法
参数
  • tuple_size — 不大于 8 的整数值。UInt8/16/32/64
  • range_mask — 在扩展模式中,每个参数对应的掩码。该掩码是一个由无符号整数组成的 Tuple。掩码中的每个数值用于配置范围收缩量。Tuple(UInt8/16/32/64)
  • code — UInt64 编码。UInt64
返回值 返回一个指定大小的 Tuple。Tuple(UInt64) 示例 简单模式
Query
Response
单个参数
Query
Response
扩展模式:缩小一个参数
Query
Response
列用法
Query
Response

mortonEncode

引入版本:v24.6.0 计算一组无符号整数的 Morton 编码 (ZCurve) 。 该函数有两种运行模式:
  • 简单模式
  • 扩展模式*
简单模式 最多接受 8 个无符号整数作为参数,并生成一个 UInt64 编码。 扩展模式 接受一个范围掩码 (Tuple) 作为第一个参数, 并接受最多 8 个无符号整数作为其余参数。 掩码中的每个数字用于指定范围扩展倍数:
  • 1 - 不扩展
  • 2 - 扩展 2 倍
  • 3 - 扩展 3 倍 ⋮
  • 最多可扩展 8 倍。
语法
参数
  • args — 最多 8 个无符号整数,或上述类型的列。UInt8/16/32/64
  • range_mask — 在扩展模式下,每个参数对应的掩码。该掩码是一个由 1 - 8 的无符号整数组成的 Tuple。掩码中的每个数字用于配置范围收缩量。Tuple(UInt8/16/32/64)
返回值 返回一个 UInt64 编码。UInt64 示例 简单模式
Query
Response
扩展模式
Query
Response
单个参数
Query
Response
单参数展开
Query
Response
列的用法
Query
Response

sqidDecode

引入于:v24.1.0 sqid 还原为数字数组。 语法
参数
  • sqid — 要解码的 sqid。 String
返回值 返回由 sqid 解码得到的数字数组。 Array(UInt64) 示例 使用示例
Query
Response

sqidEncode

引入版本:v24.1.0 将数字转换为 sqid,即一种类似于 YouTube ID 的字符串。 语法
别名: sqid 参数 返回值 返回哈希 ID String 示例 使用示例
Query
Response

unbin

Introduced in: v21.8.0 将 (参数中的) 每对二进制位解释为一个数字,并将其转换为该数字所表示的字节。该函数执行与 bin 相反的操作。 对于数值参数,unbin() 返回的结果并不是 bin() 的逆运算结果。如果要将结果转换为数值,可以使用 reverse 和 reinterpretAs<Type> 函数。
如果在 clickhouse-client 中调用 unbin,二进制字符串会以 UTF-8 格式显示。
支持二进制数字 01。二进制位数不必是 8 的倍数。如果参数字符串中包含二进制数字以外的任何内容, 则结果未定义 (不会抛出异常) 。 语法
参数
  • arg — 包含任意个二进制数字的字符串。String
返回值 返回二进制字符串 (BLOB) 。String 示例 基本用法
Query
Response
转换为数值
Query
Response

unhex

引入版本:v1.1.0 执行与 hex 相反的操作。它将参数中的每对十六进制数字解释为一个数值,并将其转换为该数值所表示的字节。返回值是二进制字符串 (BLOB) 。 如果要将结果转换为数值,可以使用 reversereinterpretAs<Type> 函数。
clickhouse-client 会将字符串解释为 UTF-8。 这可能会导致 hex 返回的值显示效果出乎意料。
支持大写和小写字母 A-F。 十六进制数字的位数不必为偶数。 如果是奇数,最后一位会被解释为 00-0F 字节的低半字节。 如果参数字符串中包含十六进制数字之外的其他内容,则会返回某种由具体实现定义的结果 (不会抛出异常) 。 对于数值参数,unhex() 不会执行 hex(N) 的逆操作。 语法
参数 返回值 返回二进制字符串 (BLOB) 。String 示例 基本用法
Query
Response
转换为数字
Query
Response
最后修改于 2026年6月19日