sql语句一条记录拆分为多条记录
2012-12-19 17:10
330 查看
if exists (select 1 from dbo.sysobjects where id = object_id(N't_test')) drop procedure [dbo].[t_test] GO Create table t_test ( id int primary key,LongField varchar(50)) GO Insert Into t_test (id,LongField) values('1','aa bb cc dd') Insert Into t_test (id,LongField) values('3','ab cc da fm') GO if exists (select 1 from dbo.sysobjects where id = object_id(N'f_tstr')) drop procedure [dbo].[f_tstr] GO create function f_tstr( @s varchar(8000), @split varchar(10), @id int )returns @re table(id int ,col varchar(100)) as begin if @s is null return while charindex(@split,@s)>0 begin insert into @re(id,col)select @id,left(@s,charindex(@split,@s)-1) set @s=right(@s,len(@s)-charindex(@split,@s)) end insert into @re(id,col) select @id, @s return end GO if exists (select 1 from dbo.sysobjects where id = object_id(N't_test1')) drop procedure [dbo].[t_test1] GO Create table t_test1 ( id int,ShortField varchar(50)) GO declare @M int select @M=max(id) from t_test while @M>0 begin declare @a varchar (200) ,@b varchar(20) select @a=id,@b=LongField from t_test where id =@M insert into t_test1(id,ShortField) select * from dbo.f_tstr(@b,' ',@a) set @M=@M-1 set @a=null set @b=null end GO select * from t_test1 GO drop table t_test drop table t_test1 drop function DBO.f_tstr GO
文章出处:
/article/11744665.html
相关文章推荐
- sql语句一条记录拆分为多条记录
- SQLite一条SQL语句插入多条记录
- [SQL Tricks] 一条SQL语句向一张表里插入多条记录 (Multi-table inserts in 9i)
- SQLite一条SQL语句插入多条记录,批量插入
- SQLite一条SQL语句插入多条记录
- SQLite一条SQL语句插入多条记录失败的问题
- 循环SQL语句实现,将一个数字字段的商数拆分成多条记录
- 用一条SQL语句实现向数据库中插入多条记录的方法
- mysql中如何用一条sql语句删除多条记录及Shell下执行mysql语句和查询统计
- SQLite一条SQL语句插入多条记录
- 创建临时表,一条sql语句一次插入多条记录
- SQL SERVER:一条SQL语句插入多条记录等
- SQL SERVER:一条SQL语句插入多条记录等
- 一条SQL语句,关于字符分割关联多条记录的问题
- mysql 一条sql语句插入多条记录
- 用一条SQL语句实现向数据库中插入多条记录的方法
- 利用sql语句复制一条或多条记录
- 使用一条SQL语句删除表中重复记录
- 一次插入多条记录的SQL语句介绍
- SQL语句 - 随机抽取一条记录