如何将逗号分隔的字符串的值放入表中?

时间:2015-05-15 14:17:16

标签: sql sql-server-2008 split

我在变量中有一个字符串@str =11,22。如何将其插入到像

这样的表中
 id      num
-------------
 1       11
 2       22

1 个答案:

答案 0 :(得分:1)

这是获取所需内容的简单方法,虽然它取决于用逗号分割并且没有空格的值(尽管如果您认为可能会发生这种情况,您可以使用修剪):

Declare @str varchar(10) = '11,22,33'
Declare @foobar table (id int identity (1,1), num int)

while (CHARINDEX(',', @str) > 0)
begin
insert into @foobar (num)
Select Left(@Str, CHARINDEX(',', @str) - 1)
Set @str = (select SUBSTRING(@str, CHARINDEX(',', @str) + 1, Len(@str)))
end
if Len(@Str) > 0
    insert into @foobar (num) 
    select @str

select * from @foobar

这是SQL小提琴:http://www.sqlfiddle.com/#!6/0e240/2/0