我在一张表的两列中都包含空值Null和“”,怎样将这两列空值的数据都排序并显示在最前端。order by我已经用过了,发现如果是一列的话没有问题,但是如果order by 两列的话,第二列中部分空值无法排序在最前。空值,排序

解决方案 »

  1.   

    select  *
    from tb
    order by case when isnull(col,'')='' then 0 else 1 end,col
      

  2.   

    order by isnull(col,'')
    这样处理一下
      

  3.   

    select  *
    from tb
    order by (CASE WHEN (ISNULL(col1, '') = '' OR ISNULL(col2, '') = '') THEN NULL ELSE '' END)
      

  4.   

    --  两列同时为空,排在最前面,其中之一列为空其次,两列都不为空排在后面
    select  *
    from tb
    order by case when isnull(col1,'')='' and isnull(col2,'')='' then 0 
    when isnull(col1,'')='' or isnull(col2,'')='' then 1 else 2 end,col1,col2