1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| CREATE FUNCTION DismemberStr
| (
| @ValueString varchar(4000),
| @DivStr varchar(5)
| )
| RETURNS @returntable TABLE
| (
| FV VARCHAR(50)
| )
| AS
| BEGIN
| DECLARE @P1 INT, @P2 INT
| DECLARE @STR VARCHAR(50)
|
| IF SUBSTRING(@ValueString, LEN(@ValueString), 1)<> @DivStr
| SET @ValueString = @ValueString + @DivStr
|
|
| SET @STR = ''
|
| SET @P1 = 1
| SET @P2 = CHARINDEX(@DivStr, @ValueString, @p1)
|
|
| WHILE (@P2 > 0)
| BEGIN
| SET @STR = SUBSTRING(@ValueString, @P1, @P2 - @P1)
| IF @STR <> ''
| INSERT INTO @returntable(FV) VALUES(@STR)
|
| SET @P1 = @P2 + 1
| SET @P2 = CHARINDEX(@DivStr, @ValueString, @p1)
| END
|
| RETURN
| END
|
|