读书人

关于在存储过程中把字符串拆分成数组

发布时间: 2012-02-06 15:52:45 作者: rapoo

关于在存储过程中把字符串拆分成数组,然后分别存入表中的问题。


存储过程中:

@MessageSendToDepartCode NVarChar (4000)

此参数的值实际是这样的:1006,1008,1990,4666,3333
也有可能只有一个数,如: 2009

现在我想这做:

把这个参数以 ", " 为分界,拆成数组,然后,把每个数字插入表 “message” 中,

------------------------------------

最后 表 messgae 中,就是这样的:

ID messageCode

2 1006
3 1008
4 1990
5 4666

在存储过程中,要怎么写呢?


[解决办法]
create table messgae(ID int identity, messageCode varchar(10))
go

declare @MessageSendToDepartCode NVarChar (4000), @sql varchar(8000)
select @MessageSendToDepartCode= '1006,1008,1990,4666,3333 ', @sql= ' insert messgae(messageCode) select '
select @sql=@sql+replace(@MessageSendToDepartCode, ', ', ' union all select ')
exec(@sql)


select * from messgae

--result
ID messageCode
----------- -----------
1 1006
2 1008
3 1990
4 4666
5 3333

(5 row(s) affected)

读书人网 >SQL Server

热点推荐