SQL按指定符號分割字串函式

2022-09-15 14:27:12 字數 2288 閱讀 8347

一、sql分割字串,返回臨時表

方法一:

1

create

function

[dbo

].[f_split]2

(3@cvarchar(2000),--

需要分割的字串(例如:1,2,3,4,5 我|和|你)

4@split

varchar(2)--

分隔符(例如 , | $)5)

6returns

@ttable(col varchar(200))--

返回表7as8

begin

9while(charindex(@split,@c)<>0)

10begin

11insert

@t(col) values (substring(@c,1,charindex(@split,@c)-1))

12set@c=

stuff(@c,1,charindex(@split,@c),'')13

end14

insert

@t(col) values (@c)15

return

16end

方法二:

1

create

function

[dbo

].[f_split]2

(3@str

varchar(2000),--

需要分割的字串(例如:1,2,3,4,5 我|和|你)

4@spliter

varchar(2)--

分隔符(例如 , | $)5)

6returns

@tbtable(ch varchar(200))--

返回表7as8

begin

9declare

@num

int,@pos

int, @nextpos

int10

set@num=0

11set

@pos=1

12while(@pos

<=

len(@str

))13

begin

14select

@nextpos

=charindex(@spliter, @str, @pos)15

if(@nextpos=0

or@nextpos

isnull)16

select

@nextpos

=len(@str) +117

insert

into

@tbvalues(rtrim(ltrim(substring(@str, @pos, @nextpos

-@pos

))))

18select

@pos

=@nextpos+1

19end

20return

21end

二、sql分割字串,返回元素個數

create

function

f_getarraylength

(

@str

varchar(2000),--

需要分割的字串(例如:1,2,3,4,5 我|和|你)

@split

varchar(2)--

分隔符(例如 , | $)

)returns

intas

begin

declare

@location

intdeclare

@start

intdeclare

@length

intset

@str

=ltrim(rtrim(@str

))

set@location

=charindex(@split,@str

)

set@length=1

while

@location

<>

0begin

set@start

=@location+1

set@location

=charindex(@split,@str,@start

)

set@length

=@length+1

endreturn

@length

end

SQL 字串分割函式

create function dbo f split sourcesql varchar 8000 strseprate varchar 10 returns temp table a varchar 100 as begin declare iint set sourcesql rtrim lt...

SQL 字串分割函式

create function dbo split input varchar max split varchar max returns table table col varchar max as begin while charindex split,input 0 begin insert ...

Spark 按兩種 符號 分割字串

元資料 string str 顏淵 公子蝶 恭喜!水城十二呆包子 芳心縱火犯後繼有人!安娜 專業土撥鼠 恭喜恭喜!百萬龍蝦店少主登場!絕対白2咩黙示錄 撒金剛出生了!stoness打著哈欠說 恭喜撒老師!盛世美顏後繼有人!不能發芽的種子 恭喜!卡李 起什麼名字?麥吉da法好太師囧 恭喜撒老 要求 按...