/*
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 ...