如果Oracle版本不是太低的話,使用 正則表達(dá)式函數(shù) REGEXP_SUBSTR 處理。\x0d\x0a\x0d\x0a5個(gè)參數(shù)\x0d\x0a第一個(gè)是輸入的字符串\x0d\x0a第二個(gè)是正則表達(dá)式\x0d\x0a第三個(gè)是標(biāo)識(shí)從第幾個(gè)字符開(kāi)始正則表達(dá)式匹配。(默認(rèn)為1)\x0d\x0a第四個(gè)是標(biāo)識(shí)第幾個(gè)匹配組。(默認(rèn)為1)\x0d\x0a第五個(gè)是是取值范圍:\x0d\x0ai:大小寫不敏感;\x0d\x0ac:大小寫敏感;\x0d\x0an:點(diǎn)號(hào) . 不匹配換行符號(hào);\x0d\x0am:多行模式;\x0d\x0ax:擴(kuò)展模式,忽略正則表達(dá)式中的空白字符。\x0d\x0a\x0d\x0aSQL SELECT\x0d\x0a 2 REGEXP_SUBSTR(a,'[0-9]+')\x0d\x0a 3 FROM\x0d\x0a 4 test_reg_substr\x0d\x0a 5 WHERE\x0d\x0a 6 REGEXP_LIKE(a, '[0-9]+');

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了阿合奇免費(fèi)建站歡迎大家使用!
oracle 截取數(shù)據(jù)的最后4位可以使用substr函數(shù),例如:
select substr('HelloWorld',-4,4) value from dual;
返回結(jié)果:orld
從后面倒數(shù)第4位開(kāi)始往后取4個(gè)字符。
擴(kuò)展資料
substr函數(shù)格式使用介紹 ? (俗稱:字符截取函數(shù)):
格式1: substr(string string, int a, int b);
1、string 需要截取的字符串
2、a 截取字符串的開(kāi)始位置(注:當(dāng)a等于0或1時(shí),都是從第一位開(kāi)始截取)
3、b 要截取的字符串的長(zhǎng)度
格式2:substr(string string, int a) ;
1、string 需要截取的字符串
2、a 可以理解為從第a個(gè)字符開(kāi)始截取后面所有的字符串。
如果字段存的就是這個(gè),那么這個(gè)應(yīng)該是字符串吧,那么就分幾步操作。
(1)定位,定位{和:的位置,從現(xiàn)在來(lái)看有兩種可能,第一種
這是兩個(gè)字段,分別是{12345:67:8}和{ABC:0:9},那就簡(jiǎn)單了{(lán)肯定是1,所以這個(gè)也就不需要定位了,只需要定位第一個(gè)冒號(hào)的位置。
定位的函數(shù)應(yīng)該是instr
第二種:{12345:67:8}{ABC:0:9}是一個(gè)字段的內(nèi)容,那就麻煩一些,不過(guò)也能做,希望不是這樣的,因?yàn)檫@個(gè)就要麻煩很多了。正則倒是能做,不過(guò)正則都要測(cè)試,我可沒(méi)有相應(yīng)的環(huán)境做測(cè)試。這里也就不寫了,如果是這種,那么自己翻一翻正則函數(shù)的用法,應(yīng)該能寫出來(lái)。
(2)截取,如果是第一種,那么定位了第一個(gè)冒號(hào)位置以后,用這個(gè)位置-2,也就是
instr(字段,':',1)-2這就是截取的長(zhǎng)度,
從第二位開(kāi)始截取,截取這個(gè)長(zhǎng)度就可以substr(字段,2,instr(字段,':',1)-2)
這樣的話,{12345:67:8}換算到內(nèi)部就是substr({12345:67:8},2,5(7-2)),【7-2說(shuō)明5的來(lái)源,第一個(gè)冒號(hào)在第7位】,截取出來(lái)就是12345
還是那句話,如果是第二種可能,那么就要找每一個(gè){的位置,然后找在{后面距離最近的冒號(hào)的位置,然后再一個(gè)個(gè)的截取操作,正則應(yīng)該可以操作,不過(guò)我還是那句話,需要測(cè)試,意思和這個(gè)截取函數(shù)差不多,自己好好理解一下應(yīng)該就能操作了。
1、將新建好的表aaaa,填充需要查詢的數(shù)據(jù)以"_"或者","為分隔符的兩條數(shù)據(jù)。
2、先挑ID為1的數(shù)據(jù)進(jìn)行截取查詢演示。
3、如果已知截取字符的長(zhǎng)度和特殊字符位置,就可以用substring()函數(shù)來(lái)從字符串的開(kāi)始位置,截取到特殊字符出現(xiàn)的位置。
4、使用charindex()函數(shù)來(lái)返回特殊字符出現(xiàn)的位置,查詢結(jié)果及語(yǔ)句。
5、使用LEFT()函數(shù)和charindex()函數(shù)來(lái)從字符最左邊開(kāi)始到特殊字符出現(xiàn)的位置。
6、第一個(gè)參數(shù)表示被截取的字符串,第二個(gè)參數(shù)表示要在第一個(gè)參數(shù)中開(kāi)始截取的位置,第三個(gè)參數(shù)表示要截取的長(zhǎng)度。
當(dāng)前題目:oracle怎么截取,Oracle怎么截取兩個(gè)逗號(hào)之間的數(shù)據(jù)
標(biāo)題來(lái)源:http://chinadenli.net/article14/dsejpde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、云服務(wù)器、全網(wǎng)營(yíng)銷推廣、網(wǎng)站內(nèi)鏈、服務(wù)器托管、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)