排序的超级难的问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ASP_sem 2008-01-16 01:59:11
问个问题
数据库里是这样的
mom son
1 0
2 1
3 1
4 0
5 2
6 4

我要查出来排序是
mom son
1 0
2 1
5 2
3 1
4 0
6 4

其实就是1有两个孩子 2.3,所以2,3要跟在1的后面
又因为2 有一个孩子 5 ,所以5要跟在2后面
4有一个孩子 6
孩子好跟在母亲的后面
母亲的son值为0
其余的son为母亲的mon值
...全文
69 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2008-01-16
  • 打赏
  • 举报
回复
-- 树形数据深度排序处理示例(递归法)
--测试数据
CREATE TABLE tb(ID char(3),PID char(3),Name nvarchar(10))
INSERT tb SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'
GO

--广度搜索排序函数
CREATE FUNCTION f_Sort(@ID char(3)=NULL,@sort int=1)
RETURNS @t_Level TABLE(ID char(3),sort int)
AS
BEGIN
DECLARE tb CURSOR LOCAL
FOR
SELECT ID FROM tb
WHERE PID=@ID
OR(@ID IS NULL AND PID IS NULL)
OPEN TB
FETCH tb INTO @ID
WHILE @@FETCH_STATUS=0
BEGIN
INSERT @t_Level VALUES(@ID,@sort)
SET @sort=@sort+1
IF @@NESTLEVEL<32 --如果递归层数未超过32层(递归最大允许32层)
BEGIN
--递归查找当前节点的子节点
INSERT @t_Level SELECT * FROM f_Sort(@ID,@sort)
SET @sort=@sort+@@ROWCOUNT --排序号加上子节点个数
END
FETCH tb INTO @ID
END
RETURN
END
GO

--显示结果
SELECT a.*
FROM tb a,f_Sort(DEFAULT,DEFAULT) b
WHERE a.ID=b.ID
ORDER BY b.sort
/*--结果
ID PID Name
------ --------- ----------
001 NULL 山东省
002 001 烟台市
004 002 招远市
003 001 青岛市
005 NULL 四会市
006 005 清远市
007 006 小分市
--*/
dawugui 2008-01-16
  • 打赏
  • 举报
回复
-- 树形数据层次显示处理示例
--测试数据
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'

--深度排序显示处理
--生成每个节点的编码累计(相同当单编号法的编码)
DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level,ID
FROM @t
WHERE PID IS NULL
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID
FROM @t a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END

--显示结果
SELECT SPACE(b.Level*2)+'|--'+a.Name
FROM @t a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Sort
/*--结果
|--山东省
|--烟台市
|--招远市
|--青岛市
|--四会市
|--清远市
|--小分市
--*/
dawugui 2008-01-16
  • 打赏
  • 举报
回复
--树形数据广度排序处理示例.
--测试数据
DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
INSERT @t SELECT '001',NULL ,'山东省'
UNION ALL SELECT '002','001','烟台市'
UNION ALL SELECT '004','002','招远市'
UNION ALL SELECT '003','001','青岛市'
UNION ALL SELECT '005',NULL ,'四会市'
UNION ALL SELECT '006','005','清远市'
UNION ALL SELECT '007','006','小分市'

--广度排序显示处理
--生成每个节点的层次数据
DECLARE @t_Level TABLE(ID char(3),Level int)
DECLARE @Level int
SET @Level=0
INSERT @t_Level SELECT ID,@Level
FROM @t
WHERE PID IS NULL
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM @t a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END

--显示结果
SELECT a.*
FROM @t a,@t_Level b
WHERE a.ID=b.ID
ORDER BY b.Level,b.ID
/*--结果
ID PID Name
------- --------- ----------
001 NULL 山东省
005 NULL 四会市
002 001 烟台市
003 001 青岛市
006 005 清远市
004 002 招远市
007 006 小分市
--*/
dawugui 2008-01-16
  • 打赏
  • 举报
回复
应该是个树或递归的问题.
maxinlife 2008-01-16
  • 打赏
  • 举报
回复
写个存储过程吧,你这个是数据结构里面的树。。。。
按照数据结构对树的排序算法,你把它改造到存储过程里面就行了。。。
只提供思路,仅供参考。。。
sailorsailor 2008-01-16
  • 打赏
  • 举报
回复
汗!不知道是不是我智商有问题,我就没有看懂楼主的描述!
1:第五大道淘宝客源码系统支持API商品数据缓存,全面提高网页访问速度,更重要的是减少API调用次数,从而避免因API每分钟调用频率过高导致无法获取商品数据的问题。   2:全面支持中文淘宝昵称,从而使淘宝昵称为中文的淘宝客也能使用API程序。   3:商品总类采用api获取商品分类信息,从而避免个别分类因为id变更无法获取商品数据的问题。   4:商品列表页面和搜索页面的商品展示增加卖家信誉图标信息。   5:商品列表页面和搜索页面增加价格区间排序(1~100元 100~200元 200~500元 500~1000元 1000~2000元 2000~5000元 5000元以上),而且过滤掉超高价格或超低价格等无用商品。   6:商品详细页面顶部增加与该商品相关的分类链接,(智能获取该商品的分类从而显示与之相关的分类链接)宝贝详情屏蔽了卖家设置的相关商品超级链接。   7:智能屏蔽违规内容的分类商品(不但不显示违规分类名称,而且也不会采集违规分类商品数据),并将其统一转换成女装分类商品 。   8:页面顶部增加频道推广的单独页面。   9:第五大道淘宝客源码系统可以配置Pid、AppKey、AppSecret、网站标题、网站关键字、网站描述等参数,从而免去多个页面重复修改。   10:整个网站CSS设置精细,没有冗余内容,全面兼容IE6、IE7、火狐等浏览器。   附带如何申请淘宝AppKey的详细图文教程。
1:支持API商品数据缓存,全面提高网页访问速度,更重要的是减少API调用次数,从而避免因API每分钟调用频率过高导致无法获取商品数据的问题。 2:全面支持中文淘宝昵称,从而使淘宝昵称为中文的淘宝客也能使用API程序。 3:彻底摒弃convert.php商品分类文件,全面采用api获取商品分类信息(页面左侧商品分类、搜索下拉框分类以及子分类),从而避免个别分类因为id变更无法获取商品数据的问题。 4:商品列表页面和搜索页面的商品展示增加卖家信誉图标信息。 5:商品列表页面和搜索页面增加价格区间排序(1~100元 100~200元 200~500元 500~1000元 1000~2000元 2000~5000元 5000元以上),而且过滤掉超高价格或超低价格等无用商品。 6:商品详细页面顶部增加与该商品相关的分类链接,(智能获取该商品的分类从而显示与之相关的分类链接)宝贝详情屏蔽了卖家设置的相关商品超级链接。 7:智能屏蔽违规内容的分类商品(不但不显示违规分类名称,而且也不会采集违规分类商品数据),并将其统一转换成女装分类商品 。 8:页面顶部增加频道推广的单独页面。 9:可以配置Pid、AppKey、AppSecret、网站标题、网站关键字、网站描述等参数,从而免去多个页面重复修改。 10:整个网站CSS设置精细,没有冗余内容,全面兼容IE6、IE7、火狐等浏览器。 附带如何申请淘宝AppKey的详细图文教程。 安装和使用过程中遇到的任何技术问题,免费提供技术支持(一次付款,终身免费升级维护,如需更换网站模板,需要另行收费)。
1.针对淘宝API2.0做升级处理,这是一个开源版,希望大家对程多多改进并加以分享!。 2.底部增加收藏功能。 3.改变首页部分区域调用分类 4.修正IE显示问题 注意:本次更新非常重要,在未来2个月左右时间淘宝将停止对API1.0的支持。 (2010.04.10): 1.去除所有页面加密的问题。你可以做任何修改,此程序完全开源!。 2.增加排序方式。 3.界面优化。 4.针对搜索引擎做进一步优化 优点: 1:支持API商品数据缓存,全面提高网页访问速度,更重要的是减少API调用次数,从而避免因API每分钟调用频率过高导致无法获取商品数据的问题。 2:网站首页可通过后台管理自动更新,使首页不再静止不变,从而加快百度快照的更新和提高百度页面的收录。 3:全面支持中文淘宝昵称,从而使淘宝昵称为中文的淘宝客也能使用API程序。 4:彻底摒弃convert.php商品分类文件,全面采用api获取商品分类信息(页面左侧商品分类、搜索下拉框分类以及子分类),从而避免个别分类因为id变更无法获取商品数据的问题。 (左侧商品分类、搜索下拉框分类以及子分类始终和淘宝提供的分类保持同步) 5:商品列表页面和搜索页面的商品展示增加卖家信誉图标信息。 (列表页的单个商品信息增加卖家信用图标(API智能获取)) 6:商品列表页面和搜索页面增加价格区间排序(1~100元 100~200元 200~500元 500~1000元 1000~2000元 2000~5000元 5000元以上),而且过滤掉超高价格或超低价格等无用商品。 (在销量排行、信誉排行、价格排行的基础上增加了价格区间排行) 7:商品详细页面顶部增加与该商品相关的分类链接,(智能获取该商品的分类从而显示与之相关的分类链接)宝贝详情屏蔽了卖家设置的相关商品超级链接。 (商品详细页面顶部增加了该商品的相关分类链接) 8:智能屏蔽违规内容的分类商品(不但不显示违规分类名称,而且也不会采集违规分类商品数据),并将其统一转换成女装分类商品 。 (将2813分类数据直接替换成14女装分类数据) 9:页面顶部增加频道推广的单独页面。 (页面最顶部增加淘宝商城、女人、男人等频道推广) 10:可以配置Pid、AppKey、AppSecret、网站标题、网站关键字、网站描述等参数,从而免去多个页面重复修改。 整个网站CSS设置精细,没有冗余内容,做了大量的seo,完全符合所有引擎的收录。全面兼容IE6、IE7、火狐等浏览器。
演示站:http://www.199du.com 1.针对淘宝API2.0做升级处理,这是一个开源版,希望大家对程多多改进并加以分享!。 2.底部增加收藏功能。 3.改变首页部分区域调用分类 4.修正IE显示问题 注意:本次更新非常重要,在未来2个月左右时间淘宝将停止对API1.0的支持。 (2010.04.10): 1.去除所有页面加密的问题。你可以做任何修改,此程序完全开源!。 2.增加排序方式。 3.界面优化。 4.针对搜索引擎做进一步优化 优点: 1:支持API商品数据缓存,全面提高网页访问速度,更重要的是减少API调用次数,从而避免因API每分钟调用频率过高导致无法获取商品数据的问题。 2:网站首页可通过后台管理自动更新,使首页不再静止不变,从而加快百度快照的更新和提高百度页面的收录。 3:全面支持中文淘宝昵称,从而使淘宝昵称为中文的淘宝客也能使用API程序。 4:彻底摒弃convert.php商品分类文件,全面采用api获取商品分类信息(页面左侧商品分类、搜索下拉框分类以及子分类),从而避免个别分类因为id变更无法获取商品数据的问题。 (左侧商品分类、搜索下拉框分类以及子分类始终和淘宝提供的分类保持同步) 5:商品列表页面和搜索页面的商品展示增加卖家信誉图标信息。 (列表页的单个商品信息增加卖家信用图标(API智能获取)) 6:商品列表页面和搜索页面增加价格区间排序(1~100元 100~200元 200~500元 500~1000元 1000~2000元 2000~5000元 5000元以上),而且过滤掉超高价格或超低价格等无用商品。 (在销量排行、信誉排行、价格排行的基础上增加了价格区间排行) 7:商品详细页面顶部增加与该商品相关的分类链接,(智能获取该商品的分类从而显示与之相关的分类链接)宝贝详情屏蔽了卖家设置的相关商品超级链接。 (商品详细页面顶部增加了该商品的相关分类链接) 8:智能屏蔽违规内容的分类商品(不但不显示违规分类名称,而且也不会采集违规分类商品数据),并将其统一转换成女装分类商品 。 (将2813分类数据直接替换成14女装分类数据) 9:页面顶部增加频道推广的单独页面。 (页面最顶部增加淘宝商城、女人、男人等频道推广) 10:可以配置Pid、AppKey、AppSecret、网站标题、网站关键字、网站描述等参数,从而免去多个页面重复修改。 整个网站CSS设置精细,没有冗余内容,做了大量的seo,完全符合所有引擎的收录。全面兼容IE6、IE7、火狐等浏览器。
【淘宝25街 淘宝客源码】 ===================================================================================================== 程序演示地址:http://www.tao25.com 1:支持API商品数据缓存,全面提高网页访问速度,更重要的是减少API调用次数,从而避免因API每分钟调用频率过高导致无法获取商品数据的问题。 2:网站首页可通过后台管理自动更新,使首页不再静止不变,从而加快百度快照的更新和提高百度页面的收录。 参考地址:http://www.tao25.com/admin.php 3:全面支持中文淘宝昵称,从而使淘宝昵称为中文的淘宝客也能使用API程序。 4:彻底摒弃convert.php商品分类文件,全面采用api获取商品分类信息(页面左侧商品分类、搜索下拉框分类以及子分类),从而避免个别分类因为id变更无法获取商品数据的问题。 参考地址:http://www.tao25.com/list.php?catid=16(左侧商品分类、搜索下拉框分类以及子分类始终和淘宝提供的分类保持同步) 5:商品列表页面和搜索页面的商品展示增加卖家信誉图标信息。 参考地址:http://www.tao25.com/list.php?catid=16(列表页的单个商品信息增加卖家信用图标(API智能获取)) 6:商品列表页面和搜索页面增加价格区间排序(1~100元 100~200元 200~500元 500~1000元 1000~2000元 2000~5000元 5000元以上),而且过滤掉超高价格或超低价格等无用商品。 参考地址:http://www.tao25.com/list.php?catid=16(在销量排行、信誉排行、价格排行的基础上增加了价格区间排行) 7:商品详细页面顶部增加与该商品相关的分类链接,(智能获取该商品的分类从而显示与之相关的分类链接)宝贝详情屏蔽了卖家设置的相关商品超级链接。 参考地址:http://www.tao25.com/view.php?num_iid=3493795741(商品详细页面顶部增加了该商品的相关分类链接) 8:智能屏蔽违规内容的分类商品(不但不显示违规分类名称,而且也不会采集违规分类商品数据),并将其统一转换成女装分类商品 。 参考地址:http://www.tao25.com/list.php?catid=2813(将2813分类数据直接替换成14女装分类数据) 9:页面顶部增加频道推广的单独页面。 参考地址:http://www.tao25.com/mall.php(页面最顶部增加淘宝商城、女人、男人等频道推广) 10:可以配置Pid、AppKey、AppSecret、网站标题、网站关键字、网站描述等参数,从而免去多个页面重复修改。 整个网站CSS设置精细,没有冗余内容,全面兼容IE6、IE7、火狐等浏 ================================================ ==== 【缓存文件清空】和【首页商品更新】说明: 1:后台管理页面:admin.php 2:点击【Delete.php链接】即可清空所有已生成的缓存文件。 3:点击【更新首页商品】按钮即可完成首页商品更新。 (请将下拉框里的所有分类都选择一次并更新才可以将首页商品完全更新,需要注意的是每个分类你只需要选择一页即可,他的意思是你抓取哪一页的内容放到首页,前期很多朋友理解错误) 备注:列表页商品、搜索页商品以及商品详细页均可通过AppKey自动实时采集商品数据,无需数据库

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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