在表T-SQL

时间:2018-02-16 16:08:45

标签: sql-server tsql conditional

我有一个名为dbo.asientti的表。在里面,有一个名为"D/H"的列。它包含标识符:借记卡"D"和信用卡"H"。在另一栏中,我有借方和贷方金额。 "D/H"列告诉我金额是贷记还是借记。

我想要做的就是将它们分开:即创建一个包含所有借记的列,另一列包含所有信用。

我的猜测是我必须创建某种条件列。换句话说,我想告诉电脑:"Create a column on dbo.asientti such that, if the value on "D/H" for amount x is "D", then x is inserted on the column"。然后,我会对"H"执行相同操作,以便只获得信用额度。

即,新列D上的借方金额,另一方上的贷方金额为H.

有没有办法在Transact SQL上执行此操作?我查找有条件列的信息,但我找不到任何东西。

提前致谢......

1 个答案:

答案 0 :(得分:0)

您要找的是Computed Columns

对于你的例子,它会以某种方式工作

(*针对新要求进行了更新 - 金额是您的金额列):

ALTER TABLE dbo.asientti
ADD 
D AS 
CASE WHEN DH = 'D' 
  THEN amount
  ELSE NULL
END,
H AS
CASE WHEN DH = 'C'
   THEN amount
   ELSE NULL
END