ORACLE 內建基本函式

2021-06-18 06:48:58 字數 3426 閱讀 3408

/*

oracle 內建基本函式

*/--【把字串轉換成小寫】

select lower('structured query language') as value from dual;

--【把字串轉換成大寫】

select upper('structured query language') as value from dual;

--【把字串的首字母大寫】

select initcap('structured query language') as value from dual;

--【連線兩個字串】

select concat ('structured query language','is easy to learn!') as value from dual;

--【字串擷取】

--1.左起第12位開始擷取到最後:query language

select substr('structured query language',12) as value from dual;

--2.左起第12位開始擷取,長度為5:query

select substr('structured query language',12,5) as value from dual;

--3.右起第8位開始擷取到最後:language

select substr('structured query language',-8) as value from dual;

--3.右起第8位開始擷取,長度為5:language

select substr('structured query language',-8,8) as value from dual;

--【計算字串中的字元個數】

select length('structured query language') as value from dual;

--【第乙個字串中,出現第二個字串的都替換為第三個字串】

select replace ('structured query language','structured query','sql') as value from dual;

--【小數取整】

select floor(12345.6789) as value from dual;

--【保留n位小數並四捨五入,預設取整】

select round(12345.6789,3) as value from dual;

--【保留n位小數不四捨五入】

select trunc (12345.6789,3) as value from dual;

--【求餘數】

select mod(100,40) as value from dual;

--【如果第乙個為空值則設為0】

select empno,ename,sal,comm,sal+nvl(comm,0) as value from emp;

--【如果第乙個不為空值,取第二個,為空則取三個】

select empno,ename,sal,comm,nvl2(comm,sal+comm,sal) as value from emp;

--【如果二者相等則返回空值,否則返回第乙個的值】

select empno,ename,sal,comm,nullif(sal,sal) as value,nullif(sal,comm) as value from emp;

--【回該函式中第乙個不為空的值】

select coalesce(comm,sal+comm,sal) as value from emp;

select coalesce(null,'','kk') as value from emp;

--【case 表示式使用】

select ename,job,sal,

case job when 'salesman' then 1.20*sal

when 'manager' then 1.30*sal

when 'analyst' then 1.40*sal

else sal end "salary"

from emp

order by job;

--【decode 表示式使用,與上面的case 結果一樣】

select ename,job,sal,decode(job,'salesman',1.20*sal,'manager',1.30*sal,'analyst',1.40*sal,sal) "salary"

from emp

order by job;

--【返回指定的字元的十進位制數】

select ascii('a') a,ascii('a'),ascii('黃') a from dual;

--【返回ascii對應的字元】

select chr(65) a,chr(97) a,chr(48070) huang from dual;

--【求n次方】

select power(2,10) as value from dual;

--【日期字串轉化為某種日期格式】

select to_date('2013-09-08','yyyy-mm-dd') as value from dual;

--【字元型別轉換為數字型別】

select to_number('20130908') as value from dual;

--【返回一組表示式中的最小值】

select least('吃','吧','阿','醃') from dual;

--【返回系統的當前日期】可加減天數

select sysdate,sysdate+7,sysdate-7,sysdate + 20/24 from dual;

--【增減月份】

select to_char(add_months(to_date('2013-09-08','yyyy-mm-dd'),2),'yyyy-mm-dd') as value from dual;

--【當前日期最後一天】

select last_day(sysdate) as value from dual;

--【第乙個日期月第二個日期相差的月數】

select months_between(to_date('2013-09-08','yyyy-mm-dd'),to_date('2012-09-08','yyyy-mm-dd')) as value from dual;

--【給出日期後計算下乙個星期幾的日期】

select next_day('08-9月-2013','星期日') as value from dual;

--【將rowid型別轉換為字元型別】

select rowid,rowidtochar(rowid),ename from emp;

Oracle內建函式

1.數值函式 floor n 小於等於數值n的最大整數 2.5 2 mod m,n m除以n的餘數 2 7 2 power m,n m的n次方 2 3 8 round n,m 將n四捨五入,保留小數點後m位 3.4 3 sign n n 0返回0,n 0返回1,n 0返回 1 8 1 sqrt n ...

oracle 內建函式

單行函式 查詢表檢視時每行返回乙個結果 集合函式 多行記錄返回乙個結果 取絕對值,如果引數可以隱式轉化為數值也能使用 select abs 100 abs 100 from dual 取餘select mod 10,3 mod 10 3 from dual 符號函式,大於0返回1 否則0 selec...

Oracle常用內建函式

單行函式分類 1.數值函式 2.字元函式 3.日期函式 4.轉換函式 5.通用函式 1.abs 絕對值 abs 1.2 1.2 2.ceil 刪除小數點,向上取整 ceil 4.3 5 3.floor 刪除小數點,向下取整 floor 4.3 4 4.power 指數函式 power 4,3 64 ...