bech32Decode
引入版本:v25.6.0 解码由 bech32 或 bech32m 算法生成的 Bech32 地址字符串。与编码函数不同,
bech32Decode 会自动处理带填充的 FixedStrings。address— 要解码的 Bech32 字符串。String或FixedStringmode— 可选。传入'raw'可在解码时不将第一个字节剥离为见证版本。对于非 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’。String或FixedStringdata— 要编码的二进制数据 String。String或FixedStringwitver_or_variant— 可选。可以是 UInt* 见证版本 (默认值为 1,Bech32 为0,Bech32m 为1+) ,也可以是 String 编码变体:'bech32'(BIP173) 或'bech32m'(BIP350) 。使用字符串变体时,不会预加见证版本字节——这对于 Cosmos SDK 等非 SegWit 地址是必需的。UInt*或String
String
示例
默认 Bech32m
Query
Response
Query
Response
Query
Response
Query
Response
bin
引入版本:v21.8.0 根据不同类型按以下规则,返回一个包含参数二进制表示的字符串:
语法
String
示例
简单整数
Query
Response
Query
Response
Query
Response
Query
Response
bitPositionsToArray
引入版本:v21.7.0 此函数返回无符号整数的二进制表示中值为 1 的位的位置 (按升序排列) 。 有符号输入整数会先转换为无符号整数。 语法arg— 一个整数值。(U)Int*
Array(UInt64)
示例
单个位被设置
Query
Response
Query
Response
bitmaskToArray
引入版本:v1.1.0 此函数将一个整数分解为若干个 2 的幂之和。 这些 2 的幂会以按升序排列的数组形式返回。 语法num— 整数值。(U)Int*
Array(UInt64)
示例
基本示例
Query
Response
Query
Response
bitmaskToList
引入版本:v1.1.0 与 bitmaskToArray 类似,但返回由 2 的幂组成的逗号分隔字符串。 语法num— 整数值。(U)Int*
String
示例
基本示例
Query
Response
char
引入版本:v20.1.0 返回一个字符串,其长度等于传入参数的个数,其中每个字节 的值都对应相应参数的值。接受多个数值类型参数。 如果参数值超出UInt8 数据类型的取值范围,则会将其转换为
UInt8,此过程中可能发生舍入和溢出。
语法
num1[, num2[, num3 ...]]— 按整数解释的数值参数。(U)Int8/16/32/64或Float*
String
示例
基础示例
Query
Response
Query
Response
hex
引入版本:v1.1.0 根据以下针对不同类型的规则,返回一个包含参数十六进制表示的字符串:
该函数使用大写字母
A-F,且不使用任何前缀 (如 0x) 或后缀 (如 h) 。
语法
String
示例
简单整数
Query
Response
Query
Response
Query
Response
Query
Response
hilbertDecode
引入版本:v24.6.0 将 Hilbert 曲线索引解码回一个由无符号整数组成的 Tuple,用于表示多维空间中的坐标。 与hilbertEncode 函数一样,此函数有两种操作模式:
- 简单模式
- 扩展模式
UInt64 编码。
扩展模式
接受一个范围掩码 (Tuple) 作为第一个参数,以及最多 2 个无符号整数作为
其他参数。掩码中的每个数都用于指定对应参数左移的位数,
从而在其取值范围内对该参数进行缩放。
当你希望取值范围 (或基数) 差异很大的
参数具有相近的分布时,范围扩展会很有帮助。例如:‘IP Address’ (0...FFFFFFFF)
和 ‘国家/地区代码’ (0...FF)。与编码函数一样,这最多仅限于 8 个
数值。
语法
tuple_size— 不超过2的整数值。UInt8/16/32/64或Tuple(UInt8/16/32/64)code—UInt64编码。UInt64
Tuple(UInt64)
示例
简单模式
Query
Response
Query
Response
Query
Response
Query
Response
hilbertEncode
引入于:v24.6.0 计算一组无符号整数对应的希尔伯特曲线编码。 该函数有两种工作模式:- 简单
- 扩展
args— 最多两个UInt值,或UInt类型的列。UInt8/16/32/64range_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 函数一样,此函数有两种操作模式:
- 简单模式
- 扩展模式
1- 不收缩2- 收缩 2 倍3- 收缩 3 倍 ⋮- 最多收缩 8 倍。
(0...FFFFFFFF)
和 ‘国家/地区代码’ (0...FF)。与编码函数一样,这里最多也只支持
8 个数字。
语法
tuple_size— 不大于 8 的整数值。UInt8/16/32/64range_mask— 在扩展模式中,每个参数对应的掩码。该掩码是一个由无符号整数组成的 Tuple。掩码中的每个数值用于配置范围收缩量。Tuple(UInt8/16/32/64)code— 待解码的 Morton 编码,即mortonEncode的输出。只有低N * intDiv(64, N)位构成输入定义域,其中N为结果 Tuple 的大小。对于超出该范围的编码值,结果未作规定,且可能因构建版本而异。UInt64
Tuple(UInt64)
示例
简单模式
Query
Response
Query
Response
Query
Response
Query
Response
mortonEncode
引入版本:v24.6.0 计算一组无符号整数的 Morton 编码 (ZCurve) 。 该函数有两种运行模式:- 简单模式
- 扩展模式*
UInt64 编码。
扩展模式
接受一个范围掩码 (Tuple) 作为第一个参数,
并接受最多 8 个无符号整数作为其余参数。
掩码中的每个数字用于指定范围扩展倍数:
- 1 - 不扩展
- 2 - 扩展 2 倍
- 3 - 扩展 3 倍 ⋮
- 最多可扩展 8 倍。
args— 最多 8 个无符号整数,或上述类型的列。UInt8/16/32/64range_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
参数
n1[, n2, ...]— 任意数量的数字。UInt8/16/32/64
String
示例
使用示例
Query
Response
unbin
Introduced in: v21.8.0 将 (参数中的) 每对二进制位解释为一个数字,并将其转换为该数字所表示的字节。该函数执行与bin 相反的操作。
对于数值参数,unbin() 返回的结果并不是 bin() 的逆运算结果。如果要将结果转换为数值,可以使用 reverse 和 reinterpretAs<Type> 函数。
如果在
clickhouse-client 中调用 unbin,二进制字符串会以 UTF-8 格式显示。0 和 1。二进制位数不必是 8 的倍数。如果参数字符串中包含二进制数字以外的任何内容,
则结果未定义 (不会抛出异常) 。
语法
arg— 包含任意个二进制数字的字符串。String
String
示例
基本用法
Query
Response
Query
Response
unhex
引入版本:v1.1.0 执行与hex 相反的操作。它将参数中的每对十六进制数字解释为一个数值,并将其转换为该数值所表示的字节。返回值是二进制字符串 (BLOB) 。
如果要将结果转换为数值,可以使用 reverse 和 reinterpretAs<Type> 函数。
clickhouse-client 会将字符串解释为 UTF-8。
这可能会导致 hex 返回的值显示效果出乎意料。A-F。
十六进制数字的位数不必为偶数。
如果是奇数,最后一位会被解释为 00-0F 字节的低半字节。
如果参数字符串中包含十六进制数字之外的其他内容,则会返回某种由具体实现定义的结果 (不会抛出异常) 。
对于数值参数,unhex() 不会执行 hex(N) 的逆操作。
语法
arg— 包含任意个十六进制字符的字符串。String或FixedString
String
示例
基本用法
Query
Response
Query
Response