簡體   English   中英

如何將一列添加到 SQL 表中,該列是其他兩列的乘積?

[英]How to add a column to an SQL table that is a multiplication of two other columns?

我有一個名為 SalesOrderDetail 的表,我需要附加一個名為“Revenue”的列,它是另外兩列的乘積:UnitPrice 和 OrderQty。

我正在使用以下代碼:

# creating columns revenue
ALTER TABLE SalesOrderDetail
ADD revenue DOUBLE NOT NULL;

# insert the revenues into the revenue column
INSERT INTO SalesOrderDetail(revenue)
SELECT UnitPrice*OrderQty
FROM SalesOrderDetail;

但我收到錯誤:錯誤代碼:1048。列“收入”不能為空

為什么列收入結果為空? 我之前嘗試將兩列相乘並得到預期的結果,因此它必須是代碼中的內容。 謝謝!

將該列添加為計算列:

ALTER TABLE SalesOrderDetail
    ADD revenue NUMERIC(20, 4) GENERATED ALWAYS AS (UnitPrice*OrderQty) VIRTUAL;

然后在查詢中使用該值時計算它。

請注意,這使用NUMERIC類型而不是浮點數。 始終使用NUMERIC / DECIMAL表示貨幣金額。

避免數據不一致,使用生成的列

ALTER TABLE SalesOrderDetail
ADD revenue NUMERIC(20, 4) 
GENERATED ALWAYS AS (UnitPrice*OrderQty) STORED;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM