| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 791 人关注过本帖
标题:表的处理问题
只看楼主 加入收藏
喜欢你没道理
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-9-22
收藏
 问题点数:0 回复次数:7 
表的处理问题
表A(编号,参加人,...)
表B(编号,姓名,作者顺序)

如:A(101,张三 李四 王五,...)
如何生成:B(101,张三,1)
(101,李四,2)
(101,王五,3)
存储过程可以实现吗?或者其他办法
2007-10-21 10:52
guoxhvip
Rank: 8Rank: 8
来 自:聖西羅南看臺
等 级:贵宾
威 望:44
帖 子:4052
专家分:135
注 册:2006-10-8
收藏
得分:0 
可以实现

愛生活 && 愛編程
2007-10-22 01:13
喜欢你没道理
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-9-22
收藏
得分:0 

不会啊,请讨教

2007-10-22 21:48
喜欢你没道理
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-9-22
收藏
得分:0 

有人给写点具体的语句吗

2007-10-25 11:03
hnj
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-10-12
收藏
得分:0 
我也是初学的呀希望能了解到更多,给点例子,谢谢
2007-10-29 20:57
喜欢你没道理
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-9-22
收藏
得分:0 

请高手,斑竹指点啊

2007-11-15 10:53
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 

create table 表A(
编号 int,
参加人 varchar(4000)
)
go
create function dbo.f_GetName(@编号 int)
returns @t table(id int,name varchar(20),num int)
as
begin
declare @参加人 varchar(4000),@i int,@j int
declare @temp varchar(20)
select @参加人='',@j=0,@temp=''
select @参加人=参加人 from 表A where 编号=@编号
set @i=charindex(' ',@参加人)+1
while @i>1
begin
select @j=@j+1,
@temp=left(@参加人,@i-1),
@参加人=substring(@参加人,@i,4000),
@i=charindex(' ',@参加人)+1
insert into @t values(@编号,@temp,@j)
end
if @参加人<> ''
begin
set @j=@j+1
insert into @t values(@编号,@参加人,@j)
end
return
end
go

insert into 表A values(101,'张三 李四 王五')

select * from dbo.f_GetName(101)

drop table 表A
drop function f_GetName

/*
id name num
----------- -------------------- -----------
101 张三 1
101 李四 2
101 王五 3

(所影响的行数为 3 行)
*/


我的msn: myfend@
2007-11-15 11:34
喜欢你没道理
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-9-22
收藏
得分:0 
我仔细研究阿,非常感谢斑竹
2007-11-16 09:26
快速回复:表的处理问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068857 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved