类别   名称  数量
家具   桌子    1
家具   椅子    2
电器   电视    1
电器   冰箱    1
食品   薯片    3
---------------------------------------------结果为
类别   名称  数量
家具   桌子    1
家具   椅子    2
-----------------------
类别   名称  数量
电器   电视    1
电器   冰箱    1
-----------------------
类别   名称  数量
食品   薯片    3-----------------------------
这样可以实现吗?如果可以怎么实现???在线等

解决方案 »

  1.   


    --> 测试数据:[TB]
    if object_id('[TB]') is not null drop table [TB]
    GO
    create table [TB]([类别] varchar(4),[名称] varchar(4),[数量] int)
    insert [TB]
    select '家具','桌子',1 union all
    select '家具','椅子',2 union all
    select '电器','电视',1 union all
    select '电器','冰箱',1 union all
    select '食品','薯片',3SELECT [类别],[名称],[数量] from (
    select [类别] as flag,[类别],[名称],rtrim([数量]) as [数量] from [TB]
    UNION ALL
    SELECT DISTINCT [类别],'------','--------','---------' FROM TB t
    )g
    ORDER BY g.flag,[名称] desc/*
    类别     名称       数量
    ------ -------- ------------
    电器     电视       1
    电器     冰箱       1
    ------ -------- ---------
    家具     桌子       1
    家具     椅子       2
    ------ -------- ---------
    食品     薯片       3
    ------ -------- ---------(8 行受影响)*/drop table [TB]