269629151 发表于 2013-1-14 08:48:45

Oracle学习笔记

<div style="" class="Section0">Oracle学习笔记

2012-09-13

1、单行函数
1.1  字符函数
UPPER:转大写
LOWER:转小写
INITCAP:开头字符大写
LENGTH:字符串长度

REPLACE:替换
REPLACE(字符串,被替换的内容,替换值)
select replace('AbccccAd','Ab','_') from dual;/_ccccAd

SUBSTR:截取字符串
SUBSTR(字符串|字段名,开始点,[长度])
select
substr('hello',2),          -- ell
substr('hello',-2),    -- lo
substr('hello', 0),        --hello
substr('hello',1),          --hello
substr('hello world!',-1)  --o
from dual;

select 
substr('hello',-2,3),     ---lo
substr('hello',2,3)       ---11o
from dual;

1.2、数字函数
ROUND:数字取整,四舍五入。
ROUND(数字|字段名,[取整位置(从小数点开始,正值往右,负值往左)])
select round(912.666,2) from dual; /912.67
select round(912.666,-2) from dual; /900
select round(912.666) from dual; /913

TRUNC:数字截取,除了四舍五入与规则ROUND一样。

MOD:取余函数,相当于操作符 % 。

1.3、日期函数
日期 +|- 数字 = 若干天后|前的日期。
日期 - 日期 = 日期差(天数)。
LAST_DAY(日期) : 求出指定日期当月最后一天的时间。
NEXT_DAY(日期,星期几): 求出指定日期下一个星期几的日期。
ADD_MONTH(日期,数字): 求出制定日期若干月后的日期。
MONTH_BETWEEN(日期,日期):求出两个日期之间的相差月数。

2、转换函数
2.1、
TO_CHAR:将数字或者日期转换成字符串。
TO_CHAR(字段名|数字|日期,格式)。
select to_char(sysdate,'fmyyyy-MM-dd hh24:mi:ss')  from dual;
2012-9-13 04:10:16 (fm:控制是否有前导0,24控制时制)
select to_char(sysdate,'yyyy-MM-dd hh:mi:ss')  from dual;
2012-09-13 04:10:16
select to_char(454646464,'L999,999,999,999,999') from dual;
 ¥454,646,464(L:local)

TO_DATE:将字符串转换成日期类型。
TO_CHAR(字符串,格式)
select to_date('2012-10-12 12:12:59','yyyy-MM-dd hh:mi:ss')  from dual;    

TO_NUMBER:将字符串转换为数字。
基本不用   oracle自能转换 ‘1’+‘2’= 3

3、通用函数
3.1、
Oracle特色函数
NVL : 将null值转换为 0

DECODE:相当于if-else if 语句
Result= DECODE(value,value1,result1,value2,result2......)
If( value==value1)
Result=result1
    Else if(value==value2)
Result=result2
     select
decode(0,0,'A', -1,'B', 1,'C'),--A
decode (0-1,0,'A', -1,'B', 1,'C'),--B
decode(0+1,0,'A', -1,'B', 1,'C')--C
from dual






页: [1]
查看完整版本: Oracle学习笔记