實際工作中,我們通常會有這樣的業務場景,需要把一大串字串,用某個特定的字串分割出來,生成一張表。一下方法就很好的解決了這個問題。
1view codeifexists(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
字串分割函式
這幾天處理字串,突然遇到字串分割問題,上網查了一些資料後,找到這兩個函式,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...