tsql - SQL Server 2000 “Incorrect syntax near the keyword ' CASE'”

标签 tsql sql-server-2000 syntax-error

尝试执行以下存储的proc时返回错误:

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函数。有人能想到解决方法或解决方法吗?

提前致谢。

-斯坦

最佳答案

正如JeremyMcGee所提到的,您需要执行任务而不是试图将案件传递给执行人员,请尝试以下类似的操作

Declare @varx int
select @varx = CASE WHEN @var1=1 AND @var2=1 THEN 3 
     WHEN @var2=1 THEN 2 
     WHEN @var1=1 THEN 1 END
EXECUTE p_someProc @varx

关于tsql - SQL Server 2000 “Incorrect syntax near the keyword ' CASE'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1845256/

相关文章:

tsql - 创建表时声明默认约束

sql - LINQ、Skip、OrderBy 和 SQL Server 2000

python - 从之前工作的代码中获取 "invalid syntax"

android - OpenGl Es纹理颜色不正确

sql - ORACLE 更新返回旧值和新值

sql-server - 如何按有拼写错误的列进行分组

SQL - 在时区

sql - 在 SSMS 2000 的 TSQL 中,如何将不可空列更改为可空列?

具有多个隐式参数的函数文字

c# - Elmah DDL 在由 context.Database.ExecuteSqlCommand (EF4.1) 运行时给出 sql 错误