0

我正在尝试使用案例使用 SQL 进行更新。如果该字段有数字,我的目标是用 field1 更新表格中的 field3。但如果它没有数字,那么我想用 field2 更新 field3。当我使用我的代码时,出现以下错误。

Msg 116, Level 16, State 1, Line 11。当子查询没有用 EXISTS 引入时,选择列表中只能指定一个表达式。

这是我的代码:

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 更新表格中的 field3,但如果它没有数字,那么我想用 field2 更新 field3

4

1 回答 1

0

根据您的逻辑,我希望这样的逻辑:

Update [dbo].[oracle_reconciliation_report$]
    set Forecast = (case when [ProposedApprovedCapitalExpenditureForecast ] > 0 
                         then [ProposedApprovedCapitalExpenditureForecast ] > 0 
                         else [ProposedCIP CapitalExpenditureForecast]
                    end)
    From [dbo].[oracle_reconciliation_report$];

也许这会解决你的问题。

于 2018-06-02T22:25:29.067 回答