我有一个名为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上执行此操作?我查找有条件列的信息,但我找不到任何东西。
提前致谢......
答案 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