oracle字串操作常用函數 及 Regex

來源:互聯網
上載者:User

常用oracle字串函數:

尋找字串匹配,返回匹配開始索引

instr(源字串, 目標字串, 起始位置, 匹配序號):

源字串:沒啥好說的

目標字串:需要匹配的字串

起始位置:源字串的開始匹配索引,從1開始

匹配序號:因為這個函數返回匹配的起始索引,所以如果有多個匹配,則用此確定返回第幾個匹配的起始索引


截取並返回子字串

substr(源字串,起始位置,截取位元)

參數顧名思義

 

--------------------------------------數值函數------------------------------------------

--1、取一個數的大,小整數用floor()和ceil()

   select floor(123.45) as "取123.45的小整數",ceil(123.45) as "取123.45的大整數" from
dual
--結果:取123.45的小整數    取123.45的大整數
--        
 123                           124

--2、數值的截取和去小數位,
--兩個數中任意一個轉換為浮點數後,整型的就會轉換為浮點數再進行運算
   select
cast(165*100 as float)/347  from dual

   select (40*100.0)/(123*1.0) 原數值,substr((40*100.0)/(123*1.0),5,2)
截取值,ROUND((40*100.0)/(123*1.0),1)固定小數位值  from
dual;
--結果:原數值                     截取值  固定小數位值
--         
32.520325203252    20        32.5         

--3、如何分別取一個小數的整數部分和小數部分呀,比如19.1657589,取出來整數為19,小數為1657589?sql中截取固定小數位、整數部分、小數部分:
 select
cast(19.1657589 as decimal(6,3)) 固定小數位,cast(19.1657589 as int)
整數部分,19.1657589-cast(19.031 as int) 小數部分 from dual;
-- 結果:

固定小數位     整數部分    小數部分

19.166           
19              0.1657589
--4、可以使用substr()和instr()截取欄位,在sql中使用CHARINDEX函數或LEFT或RIGHT函數,在oracle中沒有
 select
substr('張三:一班:男',instr('張三:一班:男',':',1,1)+1,2) as 班級,instr('張三:一班:男',':',1,1)+1
開始位置  from dual
--結果: 班級    開始位置
--            一班    4

 

 

 

oracleRegex:

從10G開始支援

內建了四個函數

REGEXP_LIKEREGEXP_INSTRREGEXP_SUBSTRREGEXP_REPLACE

顧名思義,沒啥好講的

跟javaRegex的區別主要在字元簇上,oracle如此表示:

字元簇:
[[:alpha:]] 任何字母。
[[:digit:]] 任何數字。
[[:alnum:]] 任何字母和數字。
[[:space:]] 任何白字元。
[[:upper:]] 任何大寫字母。
[[:lower:]] 任何小寫字母。
[[unct:]] 任何標點符號。
[[:xdigit:]] 任何16進位的數字,相當於[0-9a-fA-F]。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.