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),只能返回一个原子值-它不是流控制语句,不能返回/执行可能重复的代码语句。+!更好的解决方案