Oracle函数脚本记录

--内置函数
--聚合函数 返回单个值
select count(*) from student where sclass='95031';   --count()记录条数
select sum(degree) from score t;                    --sum(degree)求成绩总和
select avg(degree) from score t;                    --avg(degree)求成绩平均值
select max(degree),min(degree) from score t;        --max(degree),min(degree)分别为成绩最大值,最小值
select max(degree),min(degree),avg(degree),sum(degree) from score t;   --可以用一行将所有聚合函数全部计算出来


--转换函数
select sname,sno,sbirthday from student where to_char(sbirthday,'yyyy')= (select to_char(s.sbirthday,'yyyy') from student s where s.sno='108');
--to_char 将日期转化成字符串,日期格式 'yyyy-mm-dd hh24:mi:ss'
select * from student where sbirthday >=to_date('1976-1-1','yyyy-mm-dd')         --to_date 将字符串转化成日期


--时间函数
select cast('123' as number) from dual;
select sysdate from dual;      --获取数据库当前时间
select sysdate+1 from dual;        --日期里的日进行加1日;
select add_months(sysdate,+1) from dual;   --月份加1月


--数值函数
--绝对值
select abs(-123) from dual;
--求模
select mod(12,5) from dual;
--取整
--取上限值
select ceil(123.35) from dual;
--取下限值
select floor(123.35) from dual;
--四舍五入
select round(123.35) from dual;
select round(123.4567,2) from dual;       --根据保留位数在四舍五入,保留两位小数
select round(123.4567,-1) from dual;        --个位数进行四舍五入,以小数点作为远点进行加减
--舍去小数点
select trunc(123.35) from dual;    
select trunc(123.35,1) from dual;


--字符串函数
--计算长度
select sname, langth(sname) from student;
--去空格
select trim('  asas  ') from dual;
select ltrim('  asas  ') from dual;        --左侧去空格
select rtrim('  asas  ') from dual;        --右侧去空格
--替换
select replace(' ab cd ',' ','') from dual;
select replace(sname,'','liu') from student where sname like '王%';
--查找字符串
select instr('abcd','a') from dual;            --查询索引值从1开始,找不到返回0
--截取字符串
select substr('abcde','1') from dual;         --0或者1都是从1位开始往后截取,到最后
select substr('abcde',-1) from dual;        --从右侧进行截取,截取结果为e
select substr('abcde',2,3) from dual;        --截取结果为bcd,从截取位置开始算取3位长度
select substr('abcde',-2,3) from dual;        --截取结果为dc,从最右边开始截取到3个长度
select aname,substr(sname,1,1)||'同学' from student;

--其他函数
select avg(nvl(degree,0)) from score;             --将空值赋个默认值为0,在进行平均数计算;
select t.* decode(ssex,'1','''2','','不知道') from STUDENT t;  --将1换成男,2换成女,如果没有,显示‘不知道’

 

posted @ 2016-10-19 08:51  熊猫卡洛斯  阅读(236)  评论(0编辑  收藏  举报