在存储过程中排列asc的排序类型

时间:2016-08-12 07:57:40

标签: sql-server vb.net

我的数据库中有这样的数据:
0 1 2 1 0 3我希望按升序排序,第一条记录应该是1而不是0.我想要这样的输出:
1 1 2 3 0 0
请任何人帮帮我?我有一个这样的存储过程:

select * from table order by number ascending 

,输出为0 0 1 1 2 3

2 个答案:

答案 0 :(得分:4)

select * from table order by CASE WHEN id = 0 THEN 999999 ELSE id END 

这只是更改排序顺序,如果要添加额外字段,则可以轻松扩展。

答案 1 :(得分:1)

应该很简单。你可以在where where条件下选择两次并使用union all。

select * into #temp from table where id <> 0 order by id

select * from #temp
union all
select * from table where id = 0