三级分类数据的排序

原创 2005年06月06日 19:00:00

三级分类数据的排序

--示例数据:
CREATE TABLE tb(ProdCateID int,ProdCateName nvarchar(10),ParentCateID int)
INSERT tb SELECT 1, N'服装'           ,0
UNION ALL SELECT 2, N'箱包'         ,0
UNION ALL SELECT 3, N'内衣'         ,1
UNION ALL SELECT 4, N'外套'         ,1
UNION ALL SELECT 5, N'男箱包'     ,2
UNION ALL SELECT 6, N'女箱包'     ,2
UNION ALL SELECT 7, N'内裤'         ,3
UNION ALL SELECT 8, N'文胸'         ,3
UNION ALL SELECT 9, N'男外套'     ,4
UNION ALL SELECT 10,N'女大衣'    ,4
UNION ALL SELECT 11,N'男用钱包',5
UNION ALL SELECT 12,N'女用钱包',6
GO

问题描述:
    ProdCateID是编码,ParentCateID是父级编码,只有三级数据,要求按级别深度排序,先排列一个ProdCateID的所有子项,再排列第二个。对于示例数据,要求结果如下:
ProdCateID  ProdCateName ParentCateID 
----------- ------------ ------------ 
1           服装                0
3           内衣                1
7           内裤                3
8           文胸                3
4           外套                1
9           男外套            4
10          女大衣           4
2           箱包                0
5           男箱包            2
11          男用钱包       5
6           女箱包            2
12          女用钱包       6

(所影响的行数为 12 行)

--查询处理的代码
SELECT a.*
FROM tb a
    LEFT JOIN tb b ON a.ParentCateID=b.ProdCateID
ORDER BY CASE 
        WHEN b.ParentCateID IS NULL THEN a.ProdCateID
        WHEN b.ParentCateID=0 THEN b.ProdCateID
        ELSE b.ParentCateID END,
    CASE 
        WHEN b.ParentCateID=0 THEN a.ProdCateID
        ELSE a.ParentCateID END,
    a.ProdCateID

原帖地址

结构体排序,多级排序

之前只是对主关键字排序,today第一次对次关键字,次次关键字排序,第一次使用qsort()(若想使用qsort(),必须自己严格按格式写个比较函数),int cmp1(const void *a,c...

数据排序筛选、分类汇总

  • 2010年05月07日 16:58
  • 3.37MB
  • 下载

按首字母分类并排序显示的列表(二)--给BaseExpandableListAdapter提供数据的HashList

首先看HashList的职责: 一.对两种数据的封装: 1.歌曲名字首字母的集合-->keys 2.每个首字母与相应歌曲集合的映射-->maps 二.对这些数据的操作 1.基于groupId和chi...

MySql无限分类数据结构--预排序遍历树算法

MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多。 我们最常见最简单的方法就是在MySql里ID ,par...

三级分类医疗体制下的双向转诊问题分析

虽然三类不同等级的医院都具有自己的优势与特点,但目前现实的情况是这几类医院都没有充分发挥自己的优势,为有着不同医疗服务需求的居民提供合适的医疗服务。当然这里面的原因有多方面的,国家也认识到了这里面存在...

分类导航支持二级三级分类

分类导航运用CSS控制UpdatePane    .my_left_category { width: 130px; ...
  • j04535
  • j04535
  • 2011年09月30日 14:14
  • 326

ecmall利用Tree.lib实现三级分类目录的输出

ecmall利用Tree.lib实现三级分类目录的输出。/*例如首页全部分类 以下两段代码写在default.app.php中*/ /* 取得商品分类 */ $gcategorys = $this...

ecshop导航栏自动显示三级或多级子栏目,多级频道分类,并实现css高亮显示

效果图 ecshop导航要达到的目标: 一,比如上图,当我访问三级分类,响应式布局,这个栏目时,最顶级的元件这个分类,要高亮显示 二,如果导航上面有商品或文章频道, 并且他们有子栏目,则全自动显...
  • viqecel
  • viqecel
  • 2015年12月01日 22:59
  • 1420

php三级联动+无限分类+树形菜单

ecshop 二次开发之三级商品分类树

需求如下,遍历三级商品fele
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三级分类数据的排序
举报原因:
原因补充:

(最多只允许输入30个字)