SQL查询排序的问题,请高手指点

来源:百度知道 编辑:UC知道 时间:2024/06/02 10:20:35
一个表里,某字段的数据如 0 0 0 1 2 3
我需要把大于0的按升序排序,然后等于0的放在排序的最后尾.怎么样写能用一条查询语句实现,望高手指点
比如是一个推荐式的排名,字段的值,是1就是第1名,是2就是第2名,如果字段的值为0则是不列入排名. 用SQL查询语句来实现的结果应该为 把大于0的按从小到大排列,而等于0的则放在大于0的排列后面.

select <字段>
from <表名>
where <列名> != 0
order by <列名> asc
union
select <字段>
from <表名>
where <列名> = 0

意思就是把不等于0的先拿出来排序 然后 用UNION并上等于0的数据

select * from 表 order by 要排列的字段 desc

只能用union all连接