尝试执行以下存储过程时返回错误:
EXECUTE p_someProc
--list of vars
CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var2=1 THEN 2
WHEN @var1=1 THEN 1 END,
--more vars
还包括其他 CASE 函数,尽管只出现了一个指向第一个 CASE 的错误。
在 PRINT 函数中运行相同的表达式时,将返回预期结果。
declare @var1 bit set @var1 = 1
declare @var2 bit set @var2 = 1
print(CASE WHEN @var1=1 AND @var2=1 THEN 3
WHEN @var1=1 THEN 2
WHEN @var2=1 THEN 1 END)
输出为“3”
我假设我以某种方式滥用了 CASE 功能。谁能想到解决方法或解决方法?
提前致谢。
——斯坦