Oracle數據庫常用函數

1.字符函數:
upper('字符串'|列名稱)將輸入的字符串轉換成大寫
lower('字符串'|列名稱)將輸入的字符串轉換成小寫
initcap('字符串'|列名稱),首字母大寫
length('字符串'|列名稱);字符串長度
replace('字符串'|列名稱);進行替換
substr(字符串 | 列,開始點 [,截取個數]):字符串截取;第一個數是開始的位置,第二個數字是從截取位置開始截取的個數
2.數字函數:
四捨五入
  select round(3.1415926,3) from dual;    //3.142
     select round(2554,-2) from dual;   //2600
捨棄小數位
select trunc(3.1415926,3) from dual;   //3.141
   select trunc(2554, -2) from dual;   //2500
3.日期函數
1).獲取當前日期:sysdate;3天后的日期
select ename, sysdate+3 from emp;
2).||:管道符,拼接字符串
select ename||3 from emp;
3).last_day:獲取當月最後一天
select last_day(sysdate) from dual;
   select last_day(hiredate) from emp;
   select * from emp where last_day(hiredate)='31-12月-80';
4).next_day:下一次出現星期X的日期
select next_day(sysdate,'星期日') from dual;
5).add_months:幾個月之後的日期(加減月份)
select add_months(sysdate, 4) from dual;
6).month_between:獲取兩個日期之間的月份
select trunc(months_between('1-2月-2017',sysdate)) from dual;
4.轉換函數
1).to_char:把日期(任意類型)轉換成字符串
select sysdate||'' from dual
   select to_char(sysdate,'yyyy-mm-dd') from dual;
   //每隔3位加一個逗號
   select to_char(123456789,'999,999,999,999') from dual;
2).to_date:把任意類型轉成時間日期
select to_char(to_date('1999-1-1 20:20:20','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') from dual;
3).to_number:把任意類型轉成數字
select to_number('123')+123 from dual;
   //在數據庫中"+"號只有一個意義,就是相加,沒有拼接的意義
   select '123'+'123' from dual;
5.通用函數
查詢僱員每月工資總和,基本工資+獎金
1).nvl
select ename ,sal+comm total from emp;
      //nvl處理null,nvl(列名稱|具體的值,默認值)
      select ename, sal+nvl(comm, 0) total from emp;
2).decode
查詢所有的員工信息,顯示員工的中文職位 CLERK=辦事人員,SALESMAN=銷售人員,PRESIDENT=董事長,MANAGER=部門經理,ANALYST=分析人員
select job from emp group by job ;
//方法一:
select ename,
	case
	  when job='CLERK'
	  then '辦事人員'
	    when job='SALESMAN'
	  then '銷售人員'
	    when job='PRESIDENT'
	  then '董事長'
	    when job='MANAGER'
	  then '部門經理'
	  else '分析人員' 
	end 
	from emp;
//方法二:
select ename,decode(job,'CLERK','辦事人員','SALESMAN','銷售人員','PRESIDENT','董事長','MANAGER','部門經理','ANALYST','分析師') from emp;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章