拆分字串

2022-02-01 12:14:07 字數 3221 閱讀 3608

本函式可以將「目標字串」以「指定字串」進行拆分,並通過表結構返回結果。**如下:

create or replace type 

str_split

is table of varchar2

(4000

);create or replace function

splitstr(p_string

in varchar2

, p_delimiter

in varchar2

)

return

str_split

pipelined

as

v_length

number

:= length(p_string);

v_start

number

:= 1

; v_index

number

;begin

while

(v_start <= v_length)

loop

v_index := instr(p_string, p_delimiter, v_start);

if v_index =

0

then

pipe row

(substr(p_string, v_start));

v_start := v_length + 1;

else

pipe row

(substr(p_string, v_start, v_index - v_start));

v_start := v_index + 1;

end if

;

end loop

;

return

;end

splitstr;

建立完畢後,我們來測試一下,例如執行如下sql:

select 

* from table

(splitstr(

'hello,cnblogs!'

,','

));

其輸出結果為乙個兩行的表,如下圖:

將行轉為列顯示:

select 

a.column_value v1,b.column_value v2

from

(select

* from

(select rownum

rn,t.*

from table

(splitstr(

'hello,cnblogs!'

,','

)) t)) a,

(select

* from

(select rownum

rn,t.*

from table

(splitstr(

'hello,cnblogs!'

,','

)) t)) b

where

a.rn=

1 and

b.rn=

2

如圖:

本函式可以將「目標字串」以「指定字串」進行拆分,並通過表結構返回結果。**如下:

create or replace type 

str_split

is table of varchar2

(4000

);create or replace function

splitstr(p_string

in varchar2

, p_delimiter

in varchar2

)

return

str_split

pipelined

as

v_length

number

:= length(p_string);

v_start

number

:= 1

; v_index

number

;begin

while

(v_start <= v_length)

loop

v_index := instr(p_string, p_delimiter, v_start);

if v_index =

0

then

pipe row

(substr(p_string, v_start));

v_start := v_length + 1;

else

pipe row

(substr(p_string, v_start, v_index - v_start));

v_start := v_index + 1;

end if

;

end loop

;

return

;end

splitstr;

建立完畢後,我們來測試一下,例如執行如下sql:

select 

* from table

(splitstr(

'hello,cnblogs!'

,','

));

其輸出結果為乙個兩行的表,如下圖:

將行轉為列顯示:

select 

a.column_value v1,b.column_value v2

from

(select

* from

(select rownum

rn,t.*

from table

(splitstr(

'hello,cnblogs!'

,','

)) t)) a,

(select

* from

(select rownum

rn,t.*

from table

(splitstr(

'hello,cnblogs!'

,','

)) t)) b

where

a.rn=

1 and

b.rn=

2

如圖:

拆分字串

拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...

拆分字串

拆分乙個字串,獲取每一組的key與value。如字串 qq adf f qewr98 eer d9adf t ad34 f qewrqr u adf43 gggg 2344 按照物件導向理念來解決,建立乙個物件 這個是對物件物件,有key和value兩個特性。我們需要把拆分好的資料臨時儲存起來,現在...

根據標點拆分字串 Excel 字串拆分

用 excel 處理資料時,有時需要對字串進行拆分。對於比較簡單的拆分,使用 excel 函式可以順利完成,但碰到一些特殊需求,或者拆分的規則比較複雜時,則很難用 excel 實現了。這裡列出一些拆分需求示例,分析拆分難點,並提供 spl 解決 spl 是專業計算引擎 esproc 使用的語言,用於...