oracle中的函数及其应用


--、、、、、、、、、、、、、、常用的单行函数、、、、、、、、、、、、、、、、、、、、、、

 


-------------------  常用的字符函数  ----------------------
--initcap(char):首字母大写
select initcap('hello') from dual

--lower(char):转换为小写
select lower('LOVEy') from dual

--upper(char):转换为大写
select upper('love you') from dual

--ltrim(char,set):左剪裁
select ltrim('abc you','abc') from dual


--Rtrim(char,set):右剪裁
select Rtrim('abcyou','you') from dual

--translate(char,from,to):按字符翻译
select translate('jack','abcd','1234') from dual

---replace(char,search_str,replace_str):字符串替换
select replace('jack and jue','j','bl') from dual

--instr(char,substr[,pos]):查找第一个子串位置
select instr('worldwide','d') from dual

--substr(char.pos.len):取子字符串
select substr('abcdefg',3,2) from dual

--concat(char1,char2):连接字符串
select concat('hello ','world') from dual





------------------- 常用的数字函数 -----------------------
--ABS(n):取绝对值
select abs(-14) from dual

--ceil(n):向上取整
select ceil(123.43243155) from dual

--floor(n):向下取整

select floor(123.876) from dual

--sin(n):正弦
select sin(1.23) from dual

--cos(n):余弦
select cos(0) from dual

--sign(n):取符号
select sign(-32) from dual

--power(m,n):m的n次幂
select power(4,2) from dual

--mod(m,n):取余数
select mod(10,4) from dual

--round(m,n):四舍五入
select round(1254.435421,3) from dual

--trunc(m,n):截断
select trunc(100.256,1) from dual

--sqrt(n):v
select sqrt(4) from dual






------------------  orcle的时间函数  --------------

----months_between:返回两个日期之间的月份差距
select months_between(date'2005-04-05',date'2004-04-05') from dual

---add_months
select add_months(date'2005-04-05',1) from dual

---获得当前系统时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

select to_char(sysdate,'Q') from dual   --季度
select to_char(sysdate,'dd') from dual  --日期
select to_char(sysdate,'iw') from dual  --周。每年有52或是53周

--next_day:返回指定日期后的星期对应的新日期
select next_day(date '2015-05-06','monday')from dual


--last_day:返回某月的最后一天
select last_day(date'2005-04-05') from dual

--round:按指定格式对日期进行四舍五入
select round(to_date(date '2015-02-04'),'year') from dual
select round(to_date(date '2015-02-04'),'month') from dual
select round(to_date(date '2015-02-04'),'day') from dual


----trunc:对日期按指定方式进行截断
select trunc(to_date(date '2015-02-04'),'year') from dual;
select trunc(to_date(date '2015-02-04'),'month') from dual;
select trunc(to_date(date '2015-02-04'),'day') from dual;



--------------- 常用的转换函数  -------------------
--- to_char :转换成字符串类型

select to_char(ADOPT_TIME,'yyyy"年"mm"月"dd"日"') from pet
select to_char(ADOPT_TIME,'yyyy"-"mm"-"dd') from pet
select to_char(ADOPT_TIME,'yyyy"/"mm"/"dd') from pet
select to_char(1234.5,'$9999.9') from dual

--to_date:转换成日期类型

select to_date('2015-03-04','yyyy-mm-dd') from dual

--to_number:转换成数值类型
select to_number('1234.6') from dual



---------------------  other  -------------------------

--NVL(EXP1, EXP2):如果exp1的值为null,则返回exp2的值,否则返回exp1的值    
select nvl(name,'无名') from pet



--NVL2(EXP1, EXP2, EXP3):如果exp1的值为null,则返回exp2的值,否则返回exp3的值
select nvl2(name,'aa','bb') from pet


---DECODE(VALUE,IF1,THEN1,IF2,THEN2,……,ELSE):如果value的值为if1,则返回then1的值,
--如果value的值为if2,则返回then2的值,……,否则返回else值
select decode(status,1,'正常',2,'禁用') from pet
     

---、、、、、、、、、、、、、、、、、、、、、 常用的多行函数  、、、、、、、、、、、、、、、、、、、、、
--SUM()、AVG()、COUNT()、MAX()、MIN()

原文地址:https://www.cnblogs.com/ziyasi/p/4483006.html