| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 623 人关注过本帖
标题:求助!这样的结果怎么实现?
只看楼主 加入收藏
aubblove
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2007-8-18
收藏
 问题点数:0 回复次数:5 
求助!这样的结果怎么实现?

假如在SQL有一个这样的表:
a b
205 202001,204001,206001
302 301001,301002

现在要把它变成一个这样的表:
a b
205 202001
205 204001
205 206001
302 301001
302 301002

怎么实现?


谢谢了!!

搜索更多相关主题的帖子: 结果 
2007-08-22 16:58
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

写一个存储过程来实现

先用游标逐行读出数据, 然后用一个循环: charindex 函数找到逗号,(只要能找到逗号就继续循环), 用substring读出逗号之前的数据 然后插入到新表
把游标遍历一次 就实现了


2007-08-22 17:55
xinzheng
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-7-22
收藏
得分:0 
以下是引用Kendy123456在2007-8-22 17:55:25的发言:

写一个存储过程来实现

先用游标逐行读出数据, 然后用一个循环: charindex 函数找到逗号,(只要能找到逗号就继续循环), 用substring读出逗号之前的数据 然后插入到新表
把游标遍历一次 就实现了

写出来啊,学习下,你这么说我还是不懂啊

2007-08-22 18:13
xinzheng
Rank: 1
等 级:新手上路
帖 子:193
专家分:0
注 册:2007-7-22
收藏
得分:0 

select top 8000 a=identity(int) into # from syscolumns a,syscolumns b

select a.a,b=substring(a.b,b.a,charindex(',',a.b+',',b.a)-b.a)
from bb a,# b
where len(a.b)>b.a
and substring(','+a.b,b.a,1)=','
and substring(a.b,b.a,1)<>','
order by a.a,b.a
drop table #
go

[此贴子已经被作者于2007-8-22 19:07:07编辑过]

2007-08-22 19:06
aubblove
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2007-8-18
收藏
得分:0 
以下是引用xinzheng在2007-8-22 19:06:35的发言:

select top 8000 a=identity(int) into # from syscolumns a,syscolumns b

select a.a,b=substring(a.b,b.a,charindex(',',a.b+',',b.a)-b.a)
from bb a,# b
where len(a.b)>b.a
and substring(','+a.b,b.a,1)=','
and substring(a.b,b.a,1)<>','
order by a.a,b.a
drop table #
go


楼上的大哥,这样就可以了吗,不要用游标吗?有点看不懂.能不能在指点一下,多谢

2007-08-23 08:29
aubblove
Rank: 1
等 级:新手上路
帖 子:117
专家分:0
注 册:2007-8-18
收藏
得分:0 
谢谢楼上大哥
以下是引用xinzheng在2007-8-22 19:06:35的发言:

select top 8000 a=identity(int) into # from syscolumns a,syscolumns b

select a.a,b=substring(a.b,b.a,charindex(',',a.b+',',b.a)-b.a)
from bb a,# b
where len(a.b)>b.a
and substring(','+a.b,b.a,1)=','
and substring(a.b,b.a,1)<>','
order by a.a,b.a
drop table #
go


楼上的大哥,谢谢你了,结果是正确的,只是有一点不懂,这里面没有用到循环语句,怎么实现循环的呢?
想交个朋友,我的QQ是:43937783,到深圳南山这边的话我请你们吃饭

2007-08-23 09:54
快速回复:求助!这样的结果怎么实现?
数据加载中...
 
   



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

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