在 table T-SQL 上创建条件列
Creating a conditional column on a table T-SQL
我有一个叫 dbo.asientti 的 table。在里面,有一个名为 "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 上执行此操作?我查找了有关条件列的信息,但找不到任何信息。
提前致谢......
您要找的是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
我有一个叫 dbo.asientti 的 table。在里面,有一个名为 "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 上执行此操作?我查找了有关条件列的信息,但找不到任何信息。
提前致谢......
您要找的是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