举例数据L1    L2    L3    L4
A     R     1     99
B     R     5     100 
V     R     3     2
C     R     2     88
D     R     2     77
S     R     2     NULL
D     R     5     NULL
F     R     2     NULL
A     R     43    NULL
F     R     34    NULL第一条件  当然是 按L4 最大的往下排   但是  所有NULL值的 要排在 100之前也就是先排 L4里的NULL值  再排 有数的 求教

解决方案 »

  1.   

    select * 
    from tb
    order by case when L4 is null then 0 else 1 end,L4
      

  2.   

    select * 
    from tb
    order by case when L4 is null then 0 else 1 end,L4 DESC
    修改的
      

  3.   

    select * from tb order by isnull(L4,99999999) desc
    /*
    L1   L2   L3          L4
    ---- ---- ----------- -----------
    S    R    2           NULL
    D    R    5           NULL
    F    R    2           NULL
    A    R    43          NULL
    F    R    34          NULL
    B    R    5           100
    A    R    1           99
    C    R    2           88
    D    R    2           77
    V    R    3           2(10 行受影响)
    */也可以给个大数.
      

  4.   


    ---------------------------------
    --  Author: htl258(Tony)
    --  Date  : 2009-07-23 17:48:31
    ---------------------------------
    --> 生成测试数据表:tbIf not object_id('[tb]') is null
    Drop table [tb]
    Go
    Create table [tb]([L1] nvarchar(1),[L2] nvarchar(1),[L3] int,[L4] int)
    Insert tb
    Select 'A','R',1,99 union all
    Select 'B','R',5,100 union all
    Select 'V','R',3,2 union all
    Select 'C','R',2,88 union all
    Select 'D','R',2,77 union all
    Select 'S','R',2,null union all
    Select 'D','R',5,null union all
    Select 'F','R',2,null union all
    Select 'A','R',43,null union all
    Select 'F','R',34,null
    Go
    --Select * from tb-->SQL查询如下:
    select * from tb order by isnull(L4,(select max(l4)+1 from tb)) desc
    /*
    L1   L2   L3          L4
    ---- ---- ----------- -----------
    S    R    2           NULL
    D    R    5           NULL
    F    R    2           NULL
    A    R    43          NULL
    F    R    34          NULL
    B    R    5           100
    A    R    1           99
    C    R    2           88
    D    R    2           77
    V    R    3           2
    (10 行受影响)*/