ID   b   c    d1   x   h    1
2   y   j    2
3   z   k    1
4   a   x    2
5   b   y    1
如何让 
ID  B  H   D2   Y  J  2
  
3   Z  K  1这两条记录 总在记录的最下面 而且显示顺序为(只能按d排列 不能按id排列)
ID  B  H   D3   Z  K  12   Y  J  2

解决方案 »

  1.   

    select * from tb order by case id when 2 then 2 when 3 then 3 else 1 end , id , d desc
      

  2.   

    create table tb(ID int, b varchar(10), c varchar(10),   d int)
    insert into tb values(1 , 'x' , 'h' ,   1 )
    insert into tb values(2 , 'y' , 'j' ,   2 )
    insert into tb values(3 , 'z' , 'k' ,   1 )
    insert into tb values(4 , 'a' , 'x' ,   2 )
    insert into tb values(5 , 'b' , 'y' ,   1 )
    goselect * from tb order by case id when 2 then 2 when 3 then 3 else 1 end , id , d descdrop table tb/*
    ID          b          c          d           
    ----------- ---------- ---------- ----------- 
    1           x          h          1
    4           a          x          2
    5           b          y          1
    2           y          j          2
    3           z          k          1(所影响的行数为 5 行)*/
      

  3.   

    ID  B  H  D 2  Y  J  2 
      
    3  Z  K  1 
     
    这样吧      如何让这两记录 总在查询结果在最下面   不管什么情况
      

  4.   

    declare @tb table(ID int, b varchar(5), c varchar(5), d  int)
    insert into @tb select
    1  ,'x'  ,'h',    1 union all select
    2  ,'y'  ,'j',    2 union all select
    3  ,'z'  ,'k',    1 union all select
    4  ,'a'  ,'x',    2 union all select
    5  ,'b'  ,'y',    1 select * from @tb t
    order by case when id=2 or id= 3 then 100 else d end
    (所影响的行数为 5 行)ID          b     c     d           
    ----------- ----- ----- ----------- 
    1           x     h     1
    5           b     y     1
    4           a     x     2
    3           z     k     1
    2           y     j     2(所影响的行数为 5 行)
      

  5.   

    ----------------------------------------------------------------
    -- Author  :fredrickhu(小F,向高手学习)
    -- Date    :2009-12-02 22:33:24
    -- Version:
    --      Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86) 
    -- Nov 24 2008 13:01:59 
    -- Copyright (c) 1988-2005 Microsoft Corporation
    -- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
    --
    ----------------------------------------------------------------
    --> 测试数据:[tb]
    if object_id('[tb]') is not null drop table [tb]
    go 
    create table [tb]([ID] int,[b] varchar(1),[c] varchar(1),[d] int)
    insert [tb]
    select 1,'x','h',1 union all
    select 2,'y','j',2 union all
    select 3,'z','k',1 union all
    select 4,'a','x',2 union all
    select 5,'b','y',1
    --------------开始查询--------------------------
    select * from [tb] order by case when id=2 then 3 when id=3 then 2 else 1 end
    ----------------结果----------------------------
    /* ID          b    c    d
    ----------- ---- ---- -----------
    1           x    h    1
    4           a    x    2
    5           b    y    1
    3           z    k    1
    2           y    j    2(5 行受影响)
    */