A表: B表:
1.大米 白面 1.大米
2.猪肉 羊肉 牛肉 2.白面
3.猪肉
4.羊肉
5.牛肉
IF NOT OBJECT_ID('[t_DemoA]') IS NULL
DROP TABLE [t_DemoA]
GO
IF NOT OBJECT_ID('[t_DemoB]') IS NULL
DROP TABLE [t_DemoB]
GO
CREATE TABLE dbo.[t_DemoA] (
ID int NOT NULL IDENTITY (1, 1),
Name Nvarchar(20) NULL
)
GO
CREATE TABLE dbo.[t_DemoB] (
ID int NOT NULL IDENTITY (1, 1),
Name Nvarchar(20) NULL
)
--插入数据
INSERT INTO [t_DemoA] Select '大米 白面'
union all Select '猪肉 羊肉 牛肉'
GO
----select * from [t_DemoA]
/*SQL server 2005/2008,可以用nvarchar(Max)****/
Declare @tmpname Nvarchar(4000)
set @tmpname=''
select @tmpname=(@tmpname+[Name]+' ') from [t_DemoA]
--print @tmpname
Declare @tmpname2 nvarchar(20)
while(charindex(' ',@tmpname)>0)
begin
set @tmpname2=substring(@tmpname,1,charindex(' ',@tmpname)-1)
--print @tmpname2
set @tmpname=substring(@tmpname,charindex(' ',@tmpname)+1,len(@tmpname)-charindex(' ',@tmpname))
insert into [t_DemoB] select @tmpname2
end
--如果只剩最后一条
Insert into [t_DemoB] select @tmpname
select * from [T_demoB]
/*执行结果
ID Name
1 大米
2 白面
3 猪肉
4 羊肉
5 牛肉
*/
或者你可以用 替换的方式," " 替换成 union all select 再拼接成Sql语句执行。