1.聚合函数
sum() 求和
count() 计数
max() 最大值
min() 最小值
avg() 平均值
2.数字相关
abs(num) 绝对值
round(num) 四舍五入
trunc(num,pre) 按pre为小数精度,截取数字
ceil() 向上取整
floor() 向下取整
mod() 取余
3.字符串相关
substr(str,begin,length) 字符串截取,orcale中位置从1开始统计
upper(str) 将字符串转化为大写
lower(str) 将字符串转化为小写
concat(str1,str2). 拼接两个字符串,多个字符串拼接使用"||"符号
length(str) 求字符串的长度
replace(str,reg,char) 替换字符串中的reg为char
translate(str,reg_list,str2) 替换字符串中某一类型的字符为str2
instr(str,find_str) 查找find_str第一次出现的位置
ltrim(str,char) 去除字符串左边连续出现的字符,默认为空格字符
rtrim(str,char) 去除字符串右边连续出现的字符,默认为空格字符
trim(str) 只能去除字符串两边的空格
lpad(str,total_length,str2) 给字符串左边填充str2至长度total_length
rpad(str,total_length,str2) 给字符串右边填充str2至长度total_length
wm_concat() 将固定的列合并为行,和over()开窗函数配合使用
regexp_substr(str,regexp,begin,result_num) 使用正则表达式对字符串进行切割
4.日期类型
sysdate:当前系统时间
获取日期相隔天数,两个日期相减
给当前日期坐偏移,直接加减天数
months_between(d1,d2) 获取两个日期间隔的月份
add_months(date,num) 给日期加月份
last_day(date) 获取当前日期的月份的最后一天
trunc(date,'时间格式') 获取某个日期第一天,常用于时间取整
5.数据类型转换
to_number(str) 转数字,不能转的报错
to_char(date) 将数据转化为字符串
to_date(str) 将数据转换为时间类型
nvl(colnm,value) 将某列的null转化为value
nvl2(colnm,value1,value2) colnm不为空转为value1,为空value2
decode(colunm,v1,d1,v2,d2,...dn) 将colunm的值v1,v2...转化为d1,d2...,其他值转为dn
6.逻辑判断语句(逻辑判断语句多用于给查询结果添加一列结果,用于标记数据或统计结果)
case
when 判断条件1 then 执行结果1
when 判断条件2 then 执行结果2
...
else 执行结果n
end
7.列转行,行转列
pivot() 行转列
povit(聚合函数() for 分组的列名 in (分组的内容,即分组的列选中的值))
unpivot() 列转行
unpivot(转化的后列名(对原表中数据新起的) for 转化的后列名(队员表中数据的字段名新起的) in (原表中的字段名))
8.开窗函数 over()
select 查询字段, 聚合函数 over(partition by 分组统计字段名 order by 排序字段名 asc|desc) from 表名
9.排名函数
row_number():按照顺序,给每一行进行排序,遇到重复的不做处理
rank():按照顺序排序,遇到有重复的产生并列排序,下一个顺序跳过占用名次
dense_rank():遇到重复的并列排序,下一个顺序不跳过占用名次
排序函数一般和开窗函数over()综合使用
10.平移函数
lag(column,num):将查询的结果集的某列column在原表的基础上向下平移num个单位
lead(column,num):向上平移
平移函数主要做数据对比使用,比如经济问题中的同比环比
11.数据库的伪列
rownum:在每次的查询结果中,都会对结果产生一个标识序列,就是伪列,使用伪列时必须从1去查询,不然没有结果
rowid:对表中的数据的行进行唯一值的定义,用来确定数据的每一行在数据库中的位置,rowid不会重复,是一个唯一的标识,一般可以在数据库中去除重复的数据。
标签:函数,05,str2,笔记,length,num,orcale,str,字符串 From: https://www.cnblogs.com/bobo2/p/16906700.html