还是刚才的问题,SQL语句不使用DESC 先按ID1排序把NULL最后,再按ID2排序把NULL最后的顺序排:
TABLE 
得到结果:    ID1  ID2      NUM1     NUM2 
a     b       10       20 
b     a       20       30 
c     null    30       40 
NULL  c       40       50 

解决方案 »

  1.   

    SELECT * FROM TABLE ORDER BY isnull(sign(ID),2), ID
      

  2.   

    SELECT * FROM TABLE ORDER BY (case when is is null then 1 else 0 end), ID
      

  3.   

    我的意思是先按ID1(A B C NULL),再按ID2(A B C NULL),谢谢关注
      

  4.   

    再order by不就行了,按id1那样写在id1后面
      

  5.   

    SELECT * FROM TABLE ORDER BY isnull(sign(ID),2),isnull(sign(ID2),2),  ID,ID2
      

  6.   

    我的字段类型是varchar 所以转换出现错误
      

  7.   


    SELECT  *   
    FROM   TABLE   
    ORDER BY 
    (case when id1 is null then 1 else 0 end),   ID1,
    (case when idd is null then 1 else 0 end),   ID2
      

  8.   

    楼上的可按ID1排序,但ID2排序不能实现出现(A,B,C,NULL,A,B,C,NULL,...)