Oracle 常用函数

001、字符
length/lengthb   字符数(1个汉字1个字符) / 字节数(1个汉字2个字节)
ltrim/rtrim/trim 删除空格
lower/upper      大小写转换

select length('abc') from dual;
select substr(ename, 1, 3) from emp; 从第一个字符开始截,一共截3个字符

substr('abcdefg',2,3) => bcd 从第2个位置取3个
substr(str,length(str)-n+1,n); 右取串

select chr(65) from dual; //ASCII码转换成字符
select ascii('A') from dual; //字符转换成ASCII码

002、日期
select sysdate from dual;
select current_date from dual;
select next_day(sysdate,'星期一') from dual; 下一个星期一是哪一天
alter SESSION SET NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';

003、to_char
数值格式
9代表一位数字,没有就不显示,小数点后的数字必须显示
select to_char(sal, '$99,999.9999') from emp;
0代表一位数字,该位没有数字,则显示0
select to_char(sal, '$00,000.0000') from emp;

货币格式,L指本地货币
select to_char(sal, 'L99,999.9999') from emp;

日期格式
select to_char(hiredate, 'yyyy-mm-dd hh:mi:ss') from emp;
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
select to_char(sysdate,'yyyy-mom-dd hh:mi:ss') from dual;

004、to_date
select to_date('2008-12月-19') from dual;
select to_date('2008-12-19','yyyy-mm-dd') from dual;
输出1981年2月20日后入职的数据
select ename, hiredate from emp where hiredate > to_date('1981-2-20', 'yyyy-mm-dd');

005、to_number
select to_number('2008') from dual;
薪水大于$1,250.00的员工
select sal from emp where sal > to_number('$1,250.00', '$9,999.99');

006、round
四舍五入
select round(23.6552) from dual;
四舍五入到小数点后2位
select round(23.6552, 2) from dual;
四舍五入到十位数:20
select round(23.6552, -1) from dual;

007、nvl
如果comm的值是空值用0替代,否则直接输出
select ename, sal*12 + nvl(comm, 0) from emp;

 

008、||

连接字符串
select 'Oracle '||'10g'||'R2' from dual;

009、decode

查询姓别为'男'和'女'的分别有多少人:
select sum(decode(sex,'男',1,0)) man,sum(decode(sex,'女',1,0)) woman from staff;

 

010、聚集函数
sum,avg,max,min,count
单行函数:一条输入对应一条输出,如substr,to_date,to_char...
聚集函数:多条输入对应一条输出,如max,min,avg...
聚集函数不能做为where子句的条件。


平均函数:
select to_char(avg(sal), '999999.99') from emp;
select round(avg(sal), 2) from emp;  --四舍五入

计数函数:
select count(*) from emp;
select count(comm) from emp;
当字段comm有nul值时,nul值不被计数,这两个语句计数结果不相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值