我是SQL Server的新手。我有产品价值的列,现在我想在同一个表上添加列值+税(税= 10%值)。有什么建议如何以最快的方式做到这一点,还是应该逐一插入1?我可以只复制值列并添加一些数学吗?如果我能做到这一点可以有人展示它是如何工作的?感谢。
答案 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 );
你也可以使它成为持久计算列。