DECLARE @s NVARCHAR(1000)SET @s='A,B,C,D,E,F,G'SET @s='select '''+REPLACE(@s,',',''' union all select ''')+''''EXEC(@s) /* A B C D E F G */
建议你在应用程序里用 split 函数.
if object_id('f_split')is not null drop function f_split go create function f_split ( @s varchar(8000), --待分拆的字符串 @split varchar(10) --数据分隔符 )returns table as return ( select substring(@s,number,charindex(@split,@s+@split,number)-number)as col from master..spt_values where type='p' and number<=len(@s+'a') and charindex(@split,@split+@s,number)=number ) go select * from dbo.f_split('11,2,3',',') /* col ---- 11 2 3 (3 個資料列受到影響) */
这么将声明的字符串换成数据库中的字段 select FFullName from table
在9楼的 select * from dbo.f_split('11,2,3',',') 前面加上插入语句就行了,类似于: insert into tb(FFullName) select * from dbo.f_split('11,2,3',',')
http://topic.csdn.net/u/20080612/22/c850499f-bce3-4877-82d5-af2357857872.html?95866
/*
A
B
C
D
E
F
G
*/
go
create function f_split
(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)returns table
as
return
(
select substring(@s,number,charindex(@split,@s+@split,number)-number)as col
from master..spt_values
where type='p' and number<=len(@s+'a')
and charindex(@split,@split+@s,number)=number
)
go
select * from dbo.f_split('11,2,3',',')
/*
col
----
11
2
3
(3 個資料列受到影響)
*/
select FFullName from table
select * from dbo.f_split('11,2,3',',')
前面加上插入语句就行了,类似于:
insert into tb(FFullName) select * from dbo.f_split('11,2,3',',')