oracle函数
oracle函数
一、大小写函数
lower():全部小写
upper():全部大写
initcap():首字母大写
--小写
select lower ('HAPPY') "Lowercase" from dual
--大写
select upper('last name')"Uppercase" from dual
--首字母大写
select initcap ('the socp') "Capitals" from dual



二、字符控制函数
① Concat--连接字符串
select concat ('happy','boy') from dual

② Substr
substr('要截取的字符串',起始位置)
select substr ('HappyBoy',2,3) from dual

③ length('字符串'):字符个数统计
lengthb('字符串'):字节个数统计
select length('快乐') 字符数,lengthb('快乐') as 字节数 from dual

④ instr('大字符串','小字符串') 返回小字符串在大字符串中出现的位置
select instrb('corporate floor','or',5,2) "Instring in bytes" from dual

⑤ lpad()和rpad()
lpad则与rpad相反
select rpad('Happy',10,'*') from dual

⑥ trim()去除带有“a”的字符
select trim('a' from 'ahappy') from dual

三、日期函数
① months_between:两个日期相差的月数
② add_months:向指定日期中加上若干月数
--两个日期相差的月数
select months_between
(
to_date('02-02-1995','MM-DD-YYYY'),
to_date('01-01-1995','MM-DD-YYYY')
) "Months"
from dual

--向指定日期中加上若干月数 select to_char(add_months(HIREDATE,1),'DD-MON-YYYY') "Next month" from emp where ENAME='WARD';

-----日期相减
---两个日期间的天数
select floor (sysdate - to_date('20020405','yyyymmdd')) from dual;

---两个日期相差的月数
select months_between(sysdate,to_date('20111204','yyyymmdd')) from dual

四、转换函数
隐式转换:
--隐式转换 select * from emp where hiredate='17-12月-80'

显示转换:
--显式转换 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

五、数字函数
① round():四舍五入
select round(12.45,1) from dual;

② trunc:截断
select trunc(15.79,1) "Truncate" from dual

六、通用函数
nvl和nvl2
--通用函数 select sal*12工资,comm 奖金,sal*12+nvl(comm,0) from emp select sal*12工资,comm 奖金,sal*12+nvl2(comm,comm,0) from emp


七、decode函数
select ename,empno,
decode (ename,'SMITH',1,
'ALLEN',2,
'WARD',3,
'JONES',4) "Location"
from emp
where empno<7600
order by empno,"Location"



浙公网安备 33010602011771号