trunc(列名,保留小数点以后的位数) ------------------------ 小数数字截取,不四舍五入
例子:trunc(32.475,2)==》32.47
sign(列名)------------------------------取数字的符号 ,大于零返回1,等于零返回0,小于零返回-1
例子:sign(-10)===》-1
decode(变量或表达式,假设值,返回值,假设值2,返回值2.。。。),根据需要返回想要显示的值。
例子:decode(1,1,'结果是1’,2,结果是2’,3,'结果是3') ===》'结果是1’
nvl(变量,值1,值2),如果变量是null返回值1,不是则返回值2
例子:nvl(null,'yes','no')==》yes
pivot(聚合函数 for 列名 in(‘列值1’,‘列值2’,‘列值3’)) , 行转列函数
例子:有张表AA,字段有班级、科目、分数
现在根据科目行转列:select * from AA a pivot(sum(a.score) for subject in('语文' ,''数学' , '物理' ,'历史'));
结果:
unpivot(新列名 for 新列名2 in (旧列名1,旧列名2。。)) --------列转行函数
例子:有一张表BB ,字段有id、shengfen(省份)、man(男)、woman(女)
现在根据男女性别列转行:select id,shengfen,sex ,numb from BB unpivot(numb for sex in (man,woman));