我有一張這樣的桌子。在這個表中,Balance Column 是在插入時從另一個表的資料中計算出來的,而 Rate 是從 Balance 中計算出來的。
Id Name Balance Rate
1 AAA 1000 200
余額:來自另一個表的資料。費率:余額 x 0.2
INSERT INTO TableA (Name, Balance, Rate)
SELECT
'AAA' AS Name,
((Score 100) * 3) - 20 as Balance
Balance * 0.2 as Rate <--- Instead of (((Score 100) * 3) - 20) *0.2
FROM TableB where PKey = 1
我的問題是,由于在插入時計算了余額,因此我似乎無法在同一個 SELECT 命令上獲得 Rate 的值?(如果不重復相同的余額計算率列)
是否可以使用一個命令插入完整的資料?
謝謝你。
uj5u.com熱心網友回復:
你可以查詢另一個查詢的結果,看這個例子
select t.Name,
t.Balance,
t.Balance * 0.2 as Rate
from ( SELECT 'AAA' AS Name,
((Score 100) * 3) - 20 as Balance
FROM TableB
where PKey = 1
) as t
對于大型查詢和復雜的計算,這可以使查詢更具可讀性,應該不會影響性能
看看這個 DBFiddle看看它是如何作業的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/517911.html
標籤:sqlsql服务器插入
