我正在尝试使用一个案例使用SQL进行更新。我的目标是使用field1更新表中的field1,如果该字段有数字的话。但是,如果它没有数字,那么我想用field2更新field2。当我使用我的代码时,我会得到以下错误。
Msg 116,级别16,状态1,第11行。当子查询未被引入时,只能在select列表中指定一个表达式。
这是我的密码:
Update [dbo].[oracle_reconciliation_report$]
SET [Forecast] =
(
Select [Forecast],
[ProposedApprovedCapitalExpenditureForecast ],
[ProposedCIP CapitalExpenditureForecast],
case when [ProposedApprovedCapitalExpenditureForecast ] > 0
then [ProposedApprovedCapitalExpenditureForecast ]
else [ProposedCIP CapitalExpenditureForecast]
end
)
From [dbo].[oracle_reconciliation_report$]如果字段有数字,我尝试用field1更新表中的field1,但是如果它没有数字,那么我想用field2更新field3。
发布于 2018-06-02 22:25:29
根据你的逻辑,我期望这样的逻辑:
Update [dbo].[oracle_reconciliation_report$]
set Forecast = (case when [ProposedApprovedCapitalExpenditureForecast ] > 0
then [ProposedApprovedCapitalExpenditureForecast ] > 0
else [ProposedCIP CapitalExpenditureForecast]
end)
From [dbo].[oracle_reconciliation_report$];也许这会解决你的问题。
https://stackoverflow.com/questions/50661193
复制相似问题