sql语句一条记录拆分为多条记录
来源:互联网 发布:淘宝店咋开 编辑:程序博客网 时间:2024/06/01 07:25
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
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
- sql语句一条记录拆分为多条记录
- sql语句一条记录拆分为多条记录
- SQL SERVER:一条SQL语句插入多条记录等
- 把多条记录合并成一条的SQL语句
- 如何执行一条sql语句update多条记录
- SQLite一条SQL语句插入多条记录
- SQL Server2005 不支持一条insert语句插入多条记录
- 利用sql语句复制一条或多条记录
- mysql 一条sql语句插入多条记录
- SQLite一条SQL语句插入多条记录,批量插入
- SQLite一条SQL语句插入多条记录
- 执行一条sql语句update多条记录实现思路
- 执行一条sql语句update多条记录实现思路
- SQL server 2008一条语句插入多条记录
- 多条记录合成一条记录sql
- mysql一条语句update多条记录
- 一条sql语句循环插入N条不同记录
- 创建临时表,一条sql语句一次插入多条记录
- tm 、time_t 、str
- 自然摄影指南——第一章:曝光:一些特殊情形下的测光
- SSH JavaEE 中文乱码问题
- hadoop常见问题汇总(一)
- 自然摄影指南——第一章:曝光:自动曝光
- sql语句一条记录拆分为多条记录
- 自然摄影指南——第一章:曝光:多重曝光
- IT界名人:Zynga CEO不关注股价涨跌 目标是长期价值
- 生成索引的语句
- 企业为什么会陷入财务危机?财务危机案例启示录——china-pub网上书店
- 自然摄影指南——第一章:曝光:长时间曝光
- 南海争端
- ASP.NET MVC——螺旋进步的产物
- stax解析xml时, 使用栈来处理,不错的代码