Oracle數據庫 語法操作彙總(二)

oracle各種語法操作的彙總第二部分

函數
1)單行函數:字符,數值,日期,轉換,通用
2)多行函數

字符函數:
(1)大小寫控制函數
upper
lower eg. select lower(user_name) from user
initcap
(2)字符控制函數:
a. concat(,)    eg.select concat(first_name,last_name) from employees
b. substr(" ",a,b) a截取字符串的開始位置 爲0或1時都從第一位開始截取 b要截取的字符串的長度
    eg.select substr('HelloWorld',0,3) value from dual; //返回結果:Hel,截取從“H”開始3個字符
c.length()  eg.SELECT length('啦啦啦abc') FROM dual; 按字符計,漢字、英文、數字都是1個字符,故這裏返回6
d.instr("","")查找字符在字符串中的位置 eg.select instr('helloworld','l') from dual;  返回結果:3    默認第一次出現“l”的位置
e.lpad( string, padded_length, [ pad_string ] ) 左填充  eg.select lpad('abcde',10,'x') from dual;   返回結果:xxxxxabcde
f.rpad(string, padded_length, [ pad_string ]) 右填充
g.trim()不指定的時候去掉空格 指定的時候去掉指定的  eg.select trim('  aaa bbb ccc  ') trim from dual; 返回結果aaa bbb ccc

數值
a)round 四捨五入
eg. select round(45.296,2) from dual; 返回結果:45.30
      select round(-45.456,2) from dual;返回結果:-45.46
b)trunc 截取而不四捨五入 select trunc(45.296,2) from dual;返回結果:45.29

日期
a)sysdate
    注意:日期-數字=日期
              日期-日期=天數
b)MONTHS_BETWEEN  eg.MONTHS_BETWEEN(date1,date2)
c)ADD_MONTHS         eg.ADD_MONTHS(sysdate,-24*12)
d)NEXT_DAY       當前系統時間的下一星期一的時間select   next_day(sysdate,1)   from   dual; 1是星期日 2是星期一
e)extract eg.select  extract (year from sysdate) year, extract (month from sysdate) month, extract (day from sysdate) day from  dual;


轉換函數:
TO_CHAR  eg.select to_char(hiredate,yyyy-mm-'
TO_DATE   eg.select to_char(hiredate,'yyyy'年'mm'月'dd'日)
TO_NUMBER 格式可添加標識符 fm:去零  9:數字  l:本地貨幣   eg.select to_number('$123.678','$999.9') from dual; 返回結果:123.6

通用
1)nvl(expr1,expr2)
eg. select name NVL(sal,0) from emp;    若sal爲空則用0代替
2)nvl2(expr1,expr2,expr3) eg.select NVL2(sal,0,100); 若sal爲空則用0代替 否則用100代替
3)decode(條件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) eg.select decode(job,'clerk','辦事員','salesman','銷售人員','其他');

 case when then else end eg.select case     YEAR when'2018' then 'lalala'  else 'hahaha' end YEAR from temp_table;

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