常用函数返回值:
函数 | 返回值 |
---|---|
count(*) | bigint |
sum() | decimal |
常用方法函数:
类型 | 操作符或函数 | 描述 | 举例 |
数字类型 | + - * / % | 基本操作符 | |
round | 保留小数,原则是最接近,可以视为四舍五入 | round(2.34,1) = 2.3 | |
ceil | 保留小数,进一法 | round(3.14,0) = 4 | |
floor | 保留小数,去尾法 | floor(3.14, 0) = 3 | |
trunc | 和floor一样 | ||
to_number | 将字符串或者时间类型转换为数字,使用java.text.DecimalFormat规定的类型 | ||
rand | 随机数 | ||
sign abs sqrt cbrt exp power ln log | 常用数学函数 | ||
字符串类型 | upper | 大写 | |
lower | 小写 | ||
reverse | 反置 | ||
lpad | 改变长度,用特殊字符填充,默认是空格 | lpad('a', 30) | |
trim ltrim rtrim | 去掉两边(或者单边)的空格 | ||
regexp_replace | 替换字符串 | regexp_replace('1,000', ',', '') = 1000 | |
|| | 字符串拼装 | '100'||'%' = 100% | |
substr | 字符串截取 | substr('2019-08-01', 0, 7) = 2019-08 | |
instr length regexp_substr | 常用字符串函数 | ||
to_char | 将数字或者时间类型转换成字符串 | TO_CHAR(now(), 'yyyyMMdd') = 20190801 | |
encode | 将数字按照格式转换成字符串 | ENCODE(myNumber, 'BASE62') | |
decode | 将字符串按照格式转化为数字 | DECODE('000000008512af277ffffff8', 'HEX') | |
时间类型 | + | 以天为单位进行加一个数字类型 | |
- | 以天为单位,如果参数是数字类型,结果就是时间类型; 如果参数是事件类型,结果就是数字类型 | ||
to_date | 从字符串输入时间 | ||
round | 保留一定的精确度,保留最接近的 | round(to_date('2015-05-01 12:30:06'),'YEAR') = 2015-05-02 00:00:00.000 | |
ceil | 保留精确度到下一个单位 | ceil(to_date('2015-05-01 12:30:06'),'YEAR') = 2015-05-02 00:00:00.000 | |
floor | 保留精确度到上一个单位 | floor(to_date('2015-05-01 12:30:06'),'YEAR') = 2015-05-01 00:00:00.000 | |
trunc | 和floor一样 | ||
current_date current_time now | 当前时间 | ||
year month week dayofmonth hour minute second | 求时间的一部分 | ||
convert_tz | 转换时区 | ||
timezone_offset | 求时差 | ||
数组类型 | any | 测试是否存在满足条件的值 | 1 = Any(my_array) |
all | 测试是否都满足某个条件 | 1 = ALL(my_array) | |
其他 | md5 invert | ||
COALESCE | 若字段值为null时,用另一个字段代替 | COALESCE(null, 0) |