我正在嘗試將名爲Multiplier的新列添加到名爲Trades的現有表中。此列的行值將取決於交易表上名爲類型的另一列。如果Type不是「Equity」,「Corp」或「Option」,則需要從另一個名爲ContractSize的表中查找該值。最後,我希望Multiplier列的數據類型爲十進制(7,3 。)我的代碼是:SQL:添加一個基於CASE表達式的新列,並從另一個表中查找值
ALTER TABLE Portfolio.Trades
ADD Multiplier decimal(7,3) AS
(
CASE
WHEN Type = 'Equity' Then 1
WHEN Type = 'Corp' Then 0.1
WHEN Type = 'Option' Then 100
ELSE
(SELECT ContractSize FROM Portfolio.ContractSize CS
JOIN Portfolio.Trades T
ON T.Identifier = CS.ContractSize)
)
我對這個代碼得到兩個錯誤:
消息156,級別15,狀態1,2 線附近有語法錯誤關鍵字 'AS'
Msg 102,Level 15,State 1,Line 12 '''附近的語法不正確。
Some gu不勝感激。
您是否試圖將此創建爲表格中的「已計算」列?或者只是在創建列後嘗試設置現有數據的初始值? –