将列拆分为两个的查询

时间:2014-11-28 20:33:21

标签: sql sql-server

您好我现在有一个ID列和一个数量列。 如果金额为正数,则值表示为借方。如果金额为负数,则为积分。我想知道我怎么能"分裂"我的金额专栏。

Select * from Test.dbo.Accounts

可生产

ID  | Amount
 1  |   500
 2  |  -600

因此,第1项是借方,第2项是贷方。我想查询数据库,以便显示如下

ID  | Debit  | Credit
 1  | 500    | null
 2  | null   |-600

2 个答案:

答案 0 :(得分:4)

您可以使用案例陈述来查找金额所属的列:

SELECT  id ,
        CASE WHEN amount >= 0 THEN amount
             ELSE NULL
        END AS debit ,
        CASE WHEN amount < 0 THEN amount
             ELSE NULL
        END AS credit
FROM    Test.dbo.Accounts

我假设0应该进行借记,但那是你的电话。

答案 1 :(得分:1)

Select ID, Amount as Debit, null as Credit
From Account
Where Amount >= 0

Union All

Select ID, null as Debit, Amount as Credit
From Account
Where Amount < 0