当x不为空时
selet * from table order by x,y当x为空时
order by y怎么写?

解决方案 »

  1.   

    SELECT * FROM TB
    ORDER BY 
    CASE WHEN X IS NOT NULL THEN 1 ELSE 0 END
    ,X,Y
      

  2.   

    selet * from table 
    order by 
      CASE WHEN x IS NOT NULL THEN X ELSE 0 END,
      y 
      

  3.   

    select * from table order by isnull(x,''),y
      

  4.   

    select * from tb/*
    id          name                 
    ----------- -------------------- 
    1           张三
    23          李四
    10          王五
    NULL        哈哈
    NULL        呵呵(所影响的行数为 5 行)*/
    select * from tb order by id,name 
    /*
    id          name                 
    ----------- -------------------- 
    NULL        哈哈
    NULL        呵呵
    1           张三
    10          王五
    23          李四(所影响的行数为 5 行)
    */
      

  5.   

    select * from [table] order by isnull(x,y),y
      

  6.   

    order by  isnull(X,0),Y
      

  7.   

    select * from table 
    order by CASE WHEN x IS NOT NULL THEN X ELSE y END
      

  8.   

    --方法一
    select * from [table] order by isnull(x,y),y
    --方法二
    selet * from table 
    order by 
      case when x is not null then X else 0 end,y