您的位置:首页 > 其它

存储过程中实现类似split功能(charindex)

2006-11-04 16:50 429 查看
1

create procedure sp_split_string
2

(
3

@string NVARCHAR(4000)
4

)
5

AS
6

BEGIN
7

DECLARE @object_id nvarchar(500)
8

DECLARE @i INT
9

DECLARE @len INT
10

print @string
11

IF (@string IS NULL) OR (LTRIM(@string) = '')
12

RETURN
13


14

WHILE CHARINDEX(',',@string) > 0
15

BEGIN
16

SET @len = LEN(@string)
17

SET @i = CHARINDEX(',', @string)
18

SET @object_id = LEFT(@string, @i-1)
19


20

INSERT INTO a (id) VALUES (@object_id)--少做修改,改成需要的sql语句即可
21

SET @string = RIGHT(@string, @len - @i)
22

END
23

SET @object_id = @string
24

INSERT INTO a (id) VALUES (@object_id)--少做修改,改成需要的sql语句即可
25

END
26

go
27


28

--测试
29

-- select * from a
30

-- exec sp_split_string '102,103,105,106,107,108,200,500,306,408'
31

-- select * from a
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: