分割字串錶值函式

2022-03-26 16:34:30 字數 1830 閱讀 1740

實際工作中,我們通常會有這樣的業務場景,需要把一大串字串,用某個特定的字串分割出來,生成一張表。一下方法就很好的解決了這個問題。

1

ifexists(select

1from sysobjects where id=

object_id('

fn_split

') and xtype='fn

')2begin

3drop

function

dbo.fn_split

4end5go

6--功 能:分割字串錶值函式7--

參 數:@string 分割的字串8--

@delimiter 分隔符9--

返 回 值:表

10--

創 建 人:maojw

11--

12create

function

[dbo

].[fn_split

](

13@string

nvarchar (max

),

14@delimiter

nvarchar (10

) 15

) 16

returns

@valuetable

table ([

value

]nvarchar(max),[id]

int)

17begin

18declare

@nextstring

nvarchar(max

),

19@pos

int,

20@nextpos

int,

21@commacheck

nvarchar(1

),22

@idint

2324

set@id=1

2526

set@nextstring=''

27set

@commacheck

=right(@string,1

)

2829

set@string

=@string

+@delimiter

3031

set@pos

=charindex(@delimiter,@string

) 32

set@nextpos=1

3334

while (@pos

<>

0)

35begin

36set

@nextstring

=substring(@string,1,@pos-1

) 37

38insert

into

@valuetable ( [

value

],[id

]) values (@nextstring,@id

) 39

40set

@string

=substring(@string,@pos

+1,len(@string

))

4142

set@nextpos

=@pos

43set

@pos

=charindex(@delimiter,@string

) 44

45set

@id=

@id+146

end47

48return

49end

50go

view code

字串分割函式

這幾天處理字串,突然遇到字串分割問題,上網查了一些資料後,找到這兩個函式,strtok與strsep函式。網上舉的例子千篇一律,下面我根據函式的實現原始碼,記錄一下使用說明,供大家討論,歡迎大牛拍磚!ps 找個庫函式原始碼的 查詢 真不容易,先找到了這個 之後,發現了經常去找軟體的oschina有原...

分割字串函式split C

字串分割符 public const string separatorstring 取得字元的第幾個字元,通過分割符分割的字串,pos以1開始 字串 分割符 第幾個 返回第幾個字串 string str split rrrrddrew tqwewerewddccc 1 public static s...

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...