比如说一张表有两个字段 编号 名称
                        1   苹果
                        2   火腿
                        3   水果
                        4   青苹果
                        5   梨
                        6   红苹果
                        7   莱阳梨
                        8   山东梨
我想选出所有水果的记录,排序规则:最前头是水果,然后是水果种类:苹果、梨(这部分按拼音排序)。最后是红苹果、青苹果、莱阳梨、山东梨(这部分也要按拼音排序)。查询结果如下:                        1   水果
                        3   梨
                        4   苹果
                        5   红苹果
                        6   青苹果
                        7   莱阳梨
                        8   山东梨
希望给个sql查询算法,谢谢!

解决方案 »

  1.   

    序号 名称     关系
    1    水果     0
    2    肉类     0
    3    苹果     1
    4    红苹果   1
    5    山东梨   1
    6    火腿     2这样就能达到你的目的select 名称 from table1 where 序号=1
    union
    select 名称from table1 where 关系=1 
      

  2.   

    (select * from table where 名称=“水果")
    union all
    (select * form (select * from table where 名称<>"水果" order by 名称) f)
    具体就是这个意思  肯定成  我刚就有这个需求