| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 825 人关注过本帖
标题:哪位高手可以帮我解读一下这个存储过程啊?(有关换车算法的)
只看楼主 加入收藏
v123981499
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-5-18
收藏
 问题点数:0 回复次数:1 
哪位高手可以帮我解读一下这个存储过程啊?(有关换车算法的)
CREATE PROC S_to_S   
@Station_Start nvarchar(10),   
@Station_Stop  nvarchar(10)   
AS   
SET NOCOUNT ON   
DECLARE @l int   
SET @l=0   
SELECT LineID,StationName,   
Line=CAST('('+RTRIM(LineID)+': '+RTRIM(StationName) as nvarchar(4000)),   
turn=turn,   
[Level]=@l   
INTO # FROM 线路表   
WHERE StationName=@Station_Start   
WHILE @@ROWCOUNT>0     
AND NOT EXISTS(SELECT * FROM # WHERE StationName=@Station_Stop)   
BEGIN   
SET @l=@l+1   
INSERT #(Line,LineID,StationName,Turn,[Level])   
SELECT     
Line=a.Line+CASE   
WHEN a.LineID=b.LineID THEN N'->'+RTRIM(b.StationName)   
ELSE N') ∝ ('+RTRIM(b.LineID)   
+N': '+RTRIM(b.StationName) END,   
b.LineID,b.StationName,b.Turn,@l   
FROM # a,线路表 b   
WHERE a.[Level]=@l-1   
AND(a.StationName=b.StationName AND a.LineID<>b.LineID   
OR a.LineID=b.LineID AND(   
a.Turn=b.Turn+1   
OR   
a.Turn=b.Turn-1))   
AND LEN(a.Line)<4000   
AND PATINDEX('%[ >]'+b.StationName+'[-)]%',a.Line)=0   
END   
SELECT N'起点站'=@Station_Start   
,N'终点站'=@Station_Stop   
,N'乘车线路'=Line+N')'     
FROM #     
WHERE [Level]=@l     
AND StationName=@Station_Stop   
IF @@ROWCOUNT =0 --如果未有可以到达的线路,则显示处理结果表备查   
SELECT * FROM #
GO
搜索更多相关主题的帖子: 算法 换车 解读 
2008-06-16 18:33
jxyga111
Rank: 8Rank: 8
来 自:中華人民共和國
等 级:贵宾
威 望:33
帖 子:6015
专家分:895
注 册:2008-3-21
收藏
得分:0 
只不过是带了参数其它都一样啥
2008-06-17 11:16
快速回复:哪位高手可以帮我解读一下这个存储过程啊?(有关换车算法的)
数据加载中...
 
   



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

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