不使用ORDER BY进行SQL排序

时间:2014-01-11 10:33:28

标签: sql tsql sql-server-2008-r2

我在表中有两列:数字列(MemNo)和值列(实际值列计算)。有减号( - )和加号(+)。我需要将负值保持在一起并加上值而不考虑顺序。订单应该在数字列上。首先,我需要MemNo排序的所有减值,然后加上MemNo排序的值。

输出应该是这样的:

MemNo   |    Value
  1     |     -20
  5     |     -30
  6     |     -6
  2     |      5
  4     |     25 
  7     |      2

1 个答案:

答案 0 :(得分:3)

select * from your_table
order by case when value < 0 then 1 else 2 end,
         memno