SQL Server 2012 - Oder by Debit,Credit

时间:2016-03-14 15:34:07

标签: sql sql-server-2012

我有这样的表数据:

TranNo   Acc No       Bal Acc      Debit      Credit
  1         511          131                    1000
  1         521          131         200
  1         333          131                      80
  1         131          511        1000
  1         131          521                     200
  1         131          333          80

有没有办法选择这样的数据和订单?我正在使用SQL Server 2012.谢谢!

TranNo   Acc No       Bal Acc      Debit      Credit
  1         131          511        1000
  1         511          131                    1000
  1         521          131         200
  1         131          521                     200
  1         131          333          80
  1         333          131                      80

1 个答案:

答案 0 :(得分:0)

我是这么认为的。我认为按最少和最大的帐户排序会获得您想要的对。然后,额外的逻辑在信用卡之前获得借记:

select t.*
from table t
order by (case when accno < balacc then accno else balacc end),
         (case when accno < balacc then balacc else accno end),
         (case when debit > 0 then 1 else 0 end);