我想在存储过程中使用CASE。我的代码中出现一些语法错误:

select
   case @Temp
   when 1 then (@selectoneCount=@selectoneCount+1)
   when 2 then (@selectoneCount=@selectoneCount+1)
   end

运行时,我得到:



在此行:
@selectoneCount = @selectoneCount + 1

接近平等。

其实我正在从另一个sp返回@temp的返回值,然后如果@temp = 1,那么我想将@SelectoneCount的计数增加1,依此类推。
请让我知道正确的语法是什么。

最佳答案

CASE只是对的“切换”,返回值-不执行整个代码块。

您需要将代码更改为以下内容:

SELECT
   @selectoneCount = CASE @Temp
                         WHEN 1 THEN @selectoneCount + 1
                         WHEN 2 THEN @selectoneCount + 1
                     END

如果@temp不设置为这些值(1或2),则您将获得一个NULL

关于sql-server - 如何在SQL Server中使用Switch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11220226/

10-09 01:20