在我的表中,我有一个名为AMT的字段,从excel目的导入是一个char(10)。该字段是以逗号或MM +分隔的美元金额。我想更新一个名为AMTBigint的新字段,该字段将此字段转换为bigint(美元金额或MM000的5000001)我有以下程序:
USE FI_external_trades;
GO
SELECT *, case
WHEN AMT = 'MM+' THEN 5000001
ELSE cast(replace(AMT, ',' , '') as integer)
END AS AMTBigint
From FI_ex_data;
GO
输出值是我想要的,但它们会创建一个名为AMTBigint的重复字段。我尝试使用set,但无法获得正确的语法。建议表示赞赏。
答案 0 :(得分:0)
您需要使用预期结果更新表格的列。因此,如果您编写的案例提供了您想要的数据,那么您应该执行以下操作。这将使用case语句的结果更新每一行的AMTBigint。
UPDATE FI_ex_data
SET AMTBigint = case
WHEN AMT = 'MM+' THEN 5000001
ELSE cast(replace(AMT, ',' , '') as integer)
END