chapter2 Oracle應用---1總結

1總結

     1.常用的字符函數

select initcap('hello') from dual 返回 Hello  (sqlServer中沒有)
select upper('hello') from dual 返回HELLO    (sqlServer中一樣,但是oracle所有數據都要來自表格,一般虛擬dual表)
select ltrim('xyzadams', 'xyz') from dual    (sqlServer中是去掉左邊的空格,oracle是去掉指定文字,從左邊開始找,位置一一對應,一直去到不相同爲止)
select translate('jack', 'aabcd', 'a') from dual     (sqlServer中沒有,前面是需要操作的字符串,中間是一一對應匹配字符串,後面是一一對應替代字符串,如果位數不夠則後面全爲空)
select replace('jack and jue', 'j', 'bl') from dual     (sqlServer中一樣,只要出現中間的,就用後面的替代)
select instr('worldwide', 'd') from dual    (sqlServer中沒有,是用CHARINDEX替代,查找後面的字符串出現在前面的第幾個位置。)
select substr('abcdefg',3,2) from dual        (sqlServer中是用substring替代,從第幾個位置開始截取字符)
select concat ('Hello', 'world') from dual     (sqlServer中沒有,追加字符串)

    2.常用的數字函數

select abs(-15) from dual     (sqlServer中一樣,取絕對值)
select ceil(44.778) from dual     (sqlServer中用ceiling,向上取整數)
select floor(44.778) from dual    (sqlServer中一樣,向下取整數)
select sign(-32) from dual    (sqlServer中一樣,取正負)
select power(4,2) from dual    (sqlServer中一樣,4的2次方)
select mod(10,3) from dual    (sqlServer中沒有,取餘數)
select round(100.256,2) from dua    (sqlServer中一樣,四捨五入保留多少位小數)
select trunc(100.256,2) from dual    (sqlServer中沒有,向下保留多少位小數)
select sqrt(4) from dual    (sqlServer中一樣,取平方根)

    3.常用的日期函數

select months_between ('04-11月-05','15-1月-05') from dual (sqlserver中是用SELECT DATEDIFF(mm,'01-01-12','05-01-12')來判斷2個月份中的不同,oracle中還將天數也加入計算,所以經常出現小數,oracle的日期格式是日月年)
select add_months('06-2月-03',1) from dual    (sqlserver中是用SELECT DATEADD(mm,4,'01-01-12')來增加日期中的約,oracle增加月份)
select next_day(sysdate,'星期一') from dual      (sqlserver中是用getdate()獲取當前時間,沒有這個函數。oracle中這個用來判斷下個星期一是的日月年)
select last_day(sysdate) from dual    (sqlserver中沒有,獲取這個月的最後一天)
select round(to_date('13-2月-03'),'YEAR')  from dual  (sqlserver沒有,四捨五入按月判斷年取整,返回01-01-03)
select round(to_date('13-2月-03'),'MONTH') from dual  (sqlserver沒有,四捨五入按天判斷月,返回01-01-03)
select round(to_date(sysdate),'DAY') from dual    (sqlserver沒有,四捨五入按天判斷星期,如果大於星期3返回這個星期天日期,如果小於星期3則去掉返回上個星期天日期)
select trunc(to_date(sysdate),'DAY') from dual    (sqlserver沒有,去尾判斷星期,返回上個星期天)

    4.常用的轉換函數


select to_char(1234.5, '$9999.9') from dual     (sqlserver中沒有,但是可以通過SELECT CONVERT (VARCHAR(5),12345)或者select CAST ('x' AS varchar(10))來實現類型轉換,oracle轉換成規定的格式的字符串)
select to_date('1980-01-01','yyyy-mm-dd') from dual    (sqlserver中沒有,將字符串轉換成date類型)
select to_number('1234.5') from dual    (sqlserver中沒有,將字符串換成number類型)

    5.常用的其他函數

select NVL(null,'5') from dual (sqlserver中用select isnull(null,'1')來實現,oracle原理一樣,如果前面爲空取後面)
 select NVL2(null,null,'111') from dual    (sqlserver中沒有,取靠前不爲空的值)
select DECODE('10','2','2', '11','100','1000') from dual     (sqlserver中沒有,VALUE,IF1,THEN1,IF2,THEN2,……,ELSE)多種取值

    6.常用的多行函數




和sqlserver一樣


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