我想更改一个表并添加一列,这是另外两列的总和,当我添加新数据时,这一列会自动计算。
答案 0 :(得分:9)
计算列规范的语法如下:
column-name AS formula
如果要将列值存储在数据库中,则应将PERSISTED关键字添加到语法中,如下所示:
column-name AS formula PERSISTED
您没有提及示例,但如果您想添加“sumOfAAndB”列来计算A和B的总和,则语法如下
ALTER TABLE tblExample ADD sumOfAAndB AS A + B
希望有所帮助。
答案 1 :(得分:2)
我建议使用View
来计算额外列,而不是将此列添加到表中,并从中读取。
以下是有关如何在此处创建视图的教程:
http://odetocode.com/Articles/299.aspx
您的查看查询类似于:
SELECT
ColumnA, ColumnB, (ColumnA+ColumnB) as ColumnC
FROM
[TableName]
答案 2 :(得分:1)
您可以使用视图,但如果您不想在每次访问视图时产生计算值的成本,则可能需要使用PERSISTED计算值。
e.g。
CREATE TABLE T1 (
a INT,
b INT,
operator CHAR,
c AS CASE operator
WHEN '+' THEN a+b
WHEN '-' THEN a-b
ELSE a*b
END
PERSISTED
) ;
请参阅SQL docs,假设您当然正在使用SQL Server。
答案 3 :(得分:1)
如何在创建新表时创建计算列:
CREATE TABLE PRODUCT
(
WORKORDERID INT NULL,
ORDERQTY INT NULL,
[ORDERVOL] AS CAST
(
CASE WHEN ORDERQTY < 10 THEN 'SINGLE DIGIT' WHEN ORDERQTY >=10 AND ORDERQTY < 100 THEN 'DOUBLE DIGIT'
WHEN ORDERQTY >=100 AND ORDERQTY < 1000 THEN 'THREE DIGIT' ELSE 'SUPER LARGE' END AS NVARCHAR(100)
)
)
INSERT INTO PRODUCT VALUES (1,1),(2,-1),(3,11)
SELECT * FROM PRODUCT
答案 4 :(得分:0)
UPDATE table_name SET total = mark1+mark2+mark3;
首先想到你可以将所有数据插入到表中,然后你可以像这样的表格更新表。
//我向你提供帮助