Sql server SQL中的Case语句出现错误

Sql server SQL中的Case语句出现错误,sql-server,tsql,Sql Server,Tsql,我做错了什么 CASE WHEN @Activity = 'XXXX' THEN SET @AccrualBase = @PrevAccrualBase SET @AccrualDate = @PrevAccrualDate SET @All_In_Rate = @PrevAll_In_Rate SET @AmtOut = @PrevAmtOut END 我试着把BEGIN END中的4个set语句放大,但没有成功。请注意,案例是一个内联sql语句,所以

我做错了什么

CASE WHEN @Activity = 'XXXX' THEN
     SET @AccrualBase = @PrevAccrualBase
     SET @AccrualDate = @PrevAccrualDate
     SET @All_In_Rate = @PrevAll_In_Rate
     SET @AmtOut = @PrevAmtOut
END

我试着把BEGIN END中的4个set语句放大,但没有成功。请注意,

案例是一个内联sql语句,所以您所做的有点痛苦。如果

IF @Activity = 'XXXX' 
BEGIN

     SET @AccrualBase = @PrevAccrualBase
     SET @AccrualDate = @PrevAccrualDate
     SET @All_In_Rate = @PrevAll_In_Rate
     SET @AmtOut = @PrevAmtOut

END

我认为您正在寻找IF声明:

IF @Activity = 'XXXX'
BEGIN
     SET @AccrualBase = @PrevAccrualBase
     SET @AccrualDate = @PrevAccrualDate
     SET @All_In_Rate = @PrevAll_In_Rate
     SET @AmtOut = @PrevAmtOut
END

你问的问题不恰当。这就是你的错误所在。
CASE
在T-SQL中(如果你说的是SQL Server和T-SQL),只能返回一个原子值-它不是流控制语句,不能返回/执行可能重复的代码语句。+!更好的解决方案