我想在存储过程中使用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/