空值排序小问题
我在一张表的两列中都包含空值Null和“”,怎样将这两列空值的数据都排序并显示在最前端。order by我已经用过了,发现如果是一列的话没有问题,但是如果order by 两列的话,第二列中部分空值无法排序在最前。 空值,排序
[解决办法]
select *
from tb
order by case when isnull(col,'')='' then 0 else 1 end,col
select *
from tb
order by (CASE WHEN (ISNULL(col1, '') = '' OR ISNULL(col2, '') = '') THEN NULL ELSE '' END)
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