高分跪求一救命存储过程

renlei1234 2009-12-23 09:49:35


oldNo newNo
a1 a
a2 a
b1 b
b2 b
a1 c
b1 c
a d
e f
g h
k j
j h

oldNo代表旧的编号
newNo代表新的编号

a2=a=a1=c=b1=b=b2=d
这几个编号是等价的

e,f和别的编号没有等价关系
原样显示

用一存储过程出来的结果是
a1 a
a2 a
b1 a
b a
b2 a
d a
e f
g h
k h
j h

其中a或h从等价关系的编号中随机取出
a也可以是a1,h也可以是g

---测试数据
if exists (select * from sysobjects where id = OBJECT_ID('[rep]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [rep]
go
CREATE TABLE [rep] ( [oldNo] [varchar] (50) NULL , [newNo] [varchar] (50) NULL )

INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'a1' , 'a' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'a2' , 'a' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'b1' , 'b' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'b2' , 'b' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'a1' , 'c' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'b1' , 'c' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'a' , 'd' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'e' , 'f' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'g' , 'h' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'k' , 'j' )
INSERT [rep] ( [oldNo] , [newNo] ) VALUES ( 'j' , 'h' )
go
...全文
80 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2009-12-23
  • 打赏
  • 举报
回复
你这个随机代替在SQL里面真的不好做 而在程序端容易多了
renlei1234 2009-12-23
  • 打赏
  • 举报
回复
oldNo可以用newNo替代
例如 a可以替代a1,c可以替代a1,d又可以替代a
说明a,a1,c,d是可以相互代替的编号
yanglinqiang 2009-12-23
  • 打赏
  • 举报
回复
Quote=引用 6 楼 dawugui 的回复:]
循环?
在程序中去做,用SQL好麻烦.
[/Quote]
牛人就是厉害!逻辑俺都没看懂
renlei1234 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lg3605119 的回复:]
楼主要描述清楚问题的本质,偶也看不懂规律...
[/Quote]
必须用SQL
renlei1234 2009-12-23
  • 打赏
  • 举报
回复
4楼是说的对
dawugui 2009-12-23
  • 打赏
  • 举报
回复
循环?
在程序中去做,用SQL好麻烦.
lg3605119 2009-12-23
  • 打赏
  • 举报
回复
楼主要描述清楚问题的本质,偶也看不懂规律...
Mr_Nice 2009-12-23
  • 打赏
  • 举报
回复
没看懂!
是说a2=a=a1=c=b1=b=b2=d
a2,a1,b1,b2 可以用a,b,c,d的任意一个代替吗?

好晕的逻辑!
yanglinqiang 2009-12-23
  • 打赏
  • 举报
回复
--小F-- 2009-12-23
  • 打赏
  • 举报
回复
看不懂结果是怎么来的?
renlei1234 2009-12-23
  • 打赏
  • 举报
回复
原始数据是这样的,别看错了
oldNo newNo
a1 a
a2 a
b1 b
b2 b
a1 c
b1 c
a d
e f
g h
k j
j h
结果是这样的
a1 a
a2 a
b1 a
b a
b2 a
d a
e f
g h
k h
j h

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧