尝试使用案例场景

时间:2018-06-02 21:09:37

标签: sql sql-server

我正在尝试使用SQL更新SQL。我的目标是使用field1更新我的tabel中的field3,如果该字段有一个数字。但如果它没有数字,那么我想用field2更新field3。当我使用我的代码时,我收到以下错误。

  

Msg 116,Level 16,State 1,Line 11.只有一个表达式可以   在未引入子查询时在选择列表中指定   存在。

这是我的代码:

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

1 个答案:

答案 0 :(得分:0)

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

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

也许这会解决你的问题。