标量函数

HoraeDB SQL 基于 DataFusion 实现,支持的标量函数如下。更多详情请参考: Datafusion

数值函数

函数描述
abs(x)绝对值
acos(x)反余弦
asin(x)反正弦
atan(x)反正切
atan2(y, x)y/x 的反正切
ceil(x)小于或等于参数的最接近整数
cos(x)余弦
exp(x)指数
floor(x)大于或等于参数的最接近整数
ln(x)自然对数
log10(x)以 10 为底的对数
log2(x)以 2 为底的对数
power(base, exponent)幂函数
round(x)四舍五入
signum(x)根据参数的正负返回 -1、0、+1
sin(x)正弦
sqrt(x)平方根
tan(x)正切
trunc(x)截断计算,取整(向零取整)

条件函数

函数描述
coalesce如果它的参数中有一个不为 null,则返回第一个参数,如果所有参数均为 null,则返回 null。当从数据库中检索数据用于显示时,它经常用于用默认值替换 null 值。
nullif如果 value1 等于 value2,则返回 null 值;否则返回 value1。这可用于执行与 coalesce 表达式相反的操作

字符函数

函数描述
ascii返回参数的第一个字符的 ascii 数字编码。在 UTF8 编码下,返回字符的 Unicode 码点。在其他多字节编码中,参数必须是 ASCII 字符。
bit_length返回字符串的比特位数。
btrim从字符串的开头和结尾删除给定字符串中的字符组成的最长字符串
char_length等效于 length。
character_length等效于 length。
concat将两个或多个字符串合并为一个字符串。
concat_ws使用给定的分隔符组合两个值。
chr根据数字码返回字符。
initcap将字符串中每个单词的首字母大写。
left返回字符串的指定最左边字符。
length返回字符串中字符的数量。
lower将字符串中的所有字符转换为它们的小写。
lpad使用特定字符集将字符串左填充到给定长度。
ltrim从字符串的开头删除由字符中的字符组成的最长字符串(默认为空格)。
md5计算给定字符串的 MD5 散列值。
octet_length等效于 length。
repeat返回一个由输入字符串重复指定次数组成的字符串。
replace替换字符串中所有子字符串的出现为新子字符串。
reverse反转字符串。
right返回字符串的指定最右边字符。
rpad使用特定字符集将字符串右填充到给定长度。
rtrim从字符串的结尾删除包含 characters 中任何字符的最长字符串。
digest计算给定字符串的散列值。
split_part按指定分隔符拆分字符串,并从结果数组中返回
starts_with检查字符串是否以给定字符串开始
strpos搜索字符串是否包含一个给定的字符串,并返回位置
substr提取子字符串
translate把字符串翻译成另一种字符集 Translates one set of characters into another.
trim移除字符串两侧的空白字符或其他指定字符。
upper将字符串中的所有字符转换为它们的大写。

正则函数

函数描述
regexp_match判断一个字符串是否匹配正则表达式
regexp_replace使用新字符串替换正则匹配的字符串中内容

时间函数

函数描述
to_timestamp将字符串转换为 Timestamp(Nanoseconds,None)类型。
to_timestamp_millis将字符串转换为 Timestamp(Milliseconds,None)类型。
to_timestamp_micros将字符串转换为 Timestamp(Microseconds,None)类型。
to_timestamp_seconds将字符串转换为 Timestamp(Seconds,None)类型。
extract从日期/时间值中检索年份或小时等子字段。
date_part从日期/时间值中检索子字段。
date_trunc将日期/时间值截断到指定的精度。
date_bin将日期/时间值按指定精度进行分组。
from_unixtime将 Unix 时代转换为 Timestamp(Nanoseconds,None)类型。
now作为 Timestamp(Nanoseconds,UTC)返回当前时间。

其他函数

Function描述
array创建有一个数组
arrow_typeof返回内置的数据类型
in_list检测数值是否在 list 里面
random生成随机值
sha224sha224
sha256sha256
sha384sha384
sha512sha512
to_hex转换为 16 进制