原表信息:
-------------------------------------
id col1 preid st
1 asdf 2
2 肯基发 2
3 搜索 1 2
4 萨瑟兰 3 1
5 呕死 2 2
6 辅导费 2 1
7 s导费 1
-------------------------------------
排序后是
-----------
id col1 preid st
4 萨瑟兰 3 1
6 辅导费 2 1
7 s导费 1
1 asdf 2
2 肯基发 2
3 搜索 1 2
5 呕死 2 2
-----------这种排序 应该怎么写?好像有点复杂

解决方案 »

  1.   

    我晕;该死的;显示成这样了;
    ------------原数据集-----
    id col1 preid st
    1 asdf null 2
    2 肯德发 null 2
    3 搜索 1 2
    4 萨瑟兰 3 1
    5 呕死 2 2
    6 辅导费 2 1----------目标------------
    id col1 preid st
    4 萨瑟兰 3 1
    6 辅导费 2 1
    1 asdf null 2
    2 肯德发 null 2
    3 搜索 1 2
    5 呕死 2 2
      

  2.   


    declare @table table (id int,col1 varchar(6),preid int,st int)
    insert into @table
    select 1,'asdf',2,null union all
    select 2,'肯基发',2,null union all
    select 3,'搜索',1,2 union all
    select 4,'萨瑟兰',3,1 union all
    select 5,'呕死',2,2 union all
    select 6,'辅导费',2,1 union all
    select 7,'s导费',1,nullselect * from @table order by isnull(st*2,3)
    /*
    id          col1   preid       st
    ----------- ------ ----------- -----------
    4           萨瑟兰    3           1
    6           辅导费    2           1
    7           s导费    1           NULL
    1           asdf   2           NULL
    2           肯基发    2           NULL
    3           搜索     1           2
    5           呕死     2           2
    */
      

  3.   

    楼上的 弄错了; null 在 第三列 不是第四列
      

  4.   

    select * from tb order by st,id  
      

  5.   

    declare @table table (id int,col1 varchar(6),preid int,st int)
    insert into @table
    select 1,'asdf',null,2 union all
    select 2,'肯德发',null,2 union all
    select 3,'搜索',1,2 union all
    select 4,'萨瑟兰',3,1 union all
    select 5,'呕死',2,2 union all
    select 6,'辅导费',2,1select * from @table order by st,id/*
    id          col1   preid       st
    ----------- ------ ----------- -----------
    4           萨瑟兰    3           1
    6           辅导费    2           1
    1           asdf   NULL        2
    2           肯德发    NULL        2
    3           搜索     1           2
    5           呕死     2           2
    */
      

  6.   

    不是这样简单啊;
    可能我的实例数据 还不完整;id col1 preid st
    1 asdf null 2
    2 肯德发 null 2
    3 搜索 null 2
    4 萨瑟兰 2 1
    5 呕死 null 1
    6 辅导费 3 1
    7 搜索法 1 2
    8 sfs 7 1
    ------->
    id col1 preid st
    8 sfs 7 1
    4 萨瑟兰 2 1
    6 辅导费 3 1
    5 呕死 null 1
    7 搜索法 1 2
    1 asdf null 2
    2 肯德发 null 2
    3 搜索 null 2
      

  7.   

    preid 记录的是 上个记录的 id 值