使用数学SQL Server复制列

时间:2016-11-23 04:26:17

标签: sql sql-server

我是SQL Server的新手。我有产品价值的列,现在我想在同一个表上添加列值+税(税= 10%值)。有什么建议如何以最快的方式做到这一点,还是应该逐一插入1?我可以只复制值列并添加一些数学吗?如果我能做到这一点可以有人展示它是如何工作的?感谢。

4 个答案:

答案 0 :(得分:0)

如果税收始终相同,您可以使用计算列:

alter t add value_plus_tax as (value * 1.1);

这可以在您需要时计算该值。否则,您应该显式添加列并更新它:

alter t add value_plus_tax decimal(10, 2); -- or whatever

update t
    set value_plus_tax = value * 1.1;

答案 1 :(得分:0)

如果您的税率可以更改,您可以将费率存储在单独的表中,并使用连接这两个表的视图来检索数据......

CREATE TABLE TaxRate (
    [Percent] TINYINT
)

GO

CREATE VIEW ValuesWithTax AS
SELECT *, [Value] * [Percent] / 100 ValueWithTax FROM [Values]
CROSS JOIN TaxRate

答案 2 :(得分:0)

如果税率不是固定值,您可以添加一列以节省税率,并使用计算列来保存总值

ALTER TABLE table1 add tax_rate decimal(19,4) DEFAULT(0.1) WITH VALUES
ALTER TABLE table1 add toatal_value as ([value](1+tax_rate)) 

答案 3 :(得分:0)

添加计算列(包括所有计算)。

即:下面的例子我已经考虑了值和税目的总和你可以做任何计算(确保计算不应该抛出异常考虑边界条件)。

       ALTER TABLE dbo.tableName ADD RetailValue AS (value+tax );  

你也可以使它成为持久计算列。