日期:2014-05-18  浏览次数:20568 次

求一条order by的检索语句
有表如下
id name

1 d
7 g
2 b
3 c
6  


现在要一条检索语句最后得出的结果是
1 d
2 b 
3 c
7 g
4
5
6
如果name有值,就按照id顺序排列,如果name没有值,就排在后面(同样也是name没有值里面也按照id顺序排列)

------解决方案--------------------
SQL code
select id,name
from TB
group by id,name,case when name IS null then 1 else 0 end 
order by case when name IS null then 1 else 0 end 


/*
1    d
2    b
3    c
7    g
4    NULL
5    NULL
6    NULL

------解决方案--------------------
SQL code

select id,name
from TB
order by case when name IS null then 1 else 0 end ,id