标量函数
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 | 生成随机值 | 
| sha224 | sha224 | 
| sha256 | sha256 | 
| sha384 | sha384 | 
| sha512 | sha512 | 
| to_hex | 转换为 16 进制 |