oracle擷取資料字串

2021-08-08 18:21:18 字數 2231 閱讀 6977

主要的函式介紹:

1、拼接字串

1)可以使用「||」來拼接字串

1

select'拼接

'||'字串'as

strfrom dual

2)通過concat()函式實現

1

select concat('

拼接', '

字串') as

strfrom dual

注:oracle的concat函式只支援兩個引數的方法,即只能拼接兩個引數,如要拼接多個引數則巢狀使用concat可實現,如:

1

select concat(concat('

拼接', '

多個'), '

字串') from dual

2、擷取字串

substr(string,start_position,[length])    求子字串,返回字串

解釋:string 源字串

start_position   開始位置(從0開始)

length 可選項,子字串的個數

1

select substr(to_char(sysdate, '

yyyy-mm-dd hh:mi:ss

'),12,5) as time from dual

1 substr("abcdefg",0); //

返回:abcdefg,擷取所有字元

2 substr("abcdefg",2); //

返回:cdefg,擷取從c開始之後所有字元

3 substr("abcdefg",0,3); //

返回:abc,擷取從a開始3個字元

4 substr("abcdefg",0,100); //

返回:abcdefg,100雖然超出預處理的字串最長度,但不會影響返回結果,系統按預處理字串最大數量返回。

5 substr("abcdefg", -

3); //返回:efg,注意引數-

3,為負值時表示從尾部開始算起,字串排列位置不變。

附:1.擷取函式

sunstr(aaa,a1,a2)

2.獲取位置函式

instr(aaa,a1,a2,a3)

aaa:字串

a1:顯示的字元

a2;開始位置

a3:出現的次數

select substr(subject,1,instr(aa,'-',-1)-1) from dual;

select

substr(

subject

,instr(as,

'-',

-1)

+1) 值

from

dual;

3、查詢字串

instr(string,substring,position,ocurrence)查詢字串位置

解釋:string:源字串

substring:要查詢的子字串

position:查詢的開始位置

ocurrence:源字串中第幾次出現的子字串

1

select instr('

corporate floor

','or

',3,2) as loc from dual

4、替換字串

replace(strsource, str1, str2) 將strsource中的str1替換成str2

解析:strsource:源字串

str1: 要替換的字串

str2: 替換後的字串

1

select

'替換字串

'as oldstr, replace('

替換字串

', '

替換', '

修改') as newstr from dual

Oracle資料字串拼接

select tablename,ltrim max sys connect by path fieldname,as fields from select tablename,fieldname,rnfirst,lead rnfirst over partition by tablename or...

ORACLE字串擷取

substr 函式 擷取字串 語法 substr string,start,length string 表示源字串,即要擷取的字串。start 開始位置,從1開始查詢。如果start是負數,則從string字串末尾開始算起。length 可選項,表示擷取字串長度。示例 select substr h...

Oracle擷取字串

今天遇到的問題是 我需要乙個201802281530時間格式的字串 即年月日時分 但是讀取的oracle資料庫裡只有2018 02 28 15 30 00這種格式的char型別。由於程式大都是直接呼叫其他方法,不方便在程式內操作,只能在oracle讀取時解決問題。解決後的最終sql 為 substr...