【问题标题】:Case statement in SQL gives error [closed]SQL中的case语句给出错误[关闭]
【发布时间】:2013-09-18 00:19:40
【问题描述】:

我在这里做错了什么?

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 个集合语句,但没有运气。请指教

【问题讨论】:

  • 你没有问一个正确的问题。那就是你做错了。
  • CASE 在 T-SQL 中(如果你在谈论 SQL Server 和 T-SQL)只能返回一个原子值 - 它是 NOT 一个流控制语句和不能返回/执行代码语句

标签: sql-server tsql


【解决方案1】:

Case 是一个内联 sql 语句,所以对你正在做的事情有点痛苦。最好只使用IF

IF @Activity = 'XXXX' 
BEGIN

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

END

【讨论】:

    【解决方案2】:

    我认为您正在寻找 IF 语句:

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

    【讨论】:

    • +!更好的解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    相关资源
    最近更新 更多