Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 CASE语句中的语法不正确_Sql Server 2005 - Fatal编程技术网

Sql server 2005 CASE语句中的语法不正确

Sql server 2005 CASE语句中的语法不正确,sql-server-2005,Sql Server 2005,我犯了一个错误 附近语法不正确= 执行此过程时: DECLARE @I_BRANCH_ID VARCHAR(MAX) EXEC GETBALANCE CASE WHEN @I_BRANCH_ID ='' THEN 0 ELSE @I_BRANCH_ID END 不能像这样将条件语法放入EXECUTE语句中 相反,请尝试: IF (@I_BRANCH_ID = '') SET @I_BRANCH_ID = '0' EXECUTE GetBalance @I_BRANCH_ID 编

我犯了一个错误

附近语法不正确=

执行此过程时:

DECLARE @I_BRANCH_ID VARCHAR(MAX) 

EXEC GETBALANCE CASE WHEN @I_BRANCH_ID ='' THEN 0 ELSE @I_BRANCH_ID END

不能像这样将条件语法放入EXECUTE语句中

相反,请尝试:

IF (@I_BRANCH_ID = '')
    SET @I_BRANCH_ID = '0'

EXECUTE GetBalance @I_BRANCH_ID
编辑:

使用更多参数,您可以简化为:

SELECT @param1 = CASE WHEN @param1 = '' THEN '0' ELSE @param1 END,
       @param2 = CASE WHEN @param2 = '' THEN '0' ELSE @param2 END,
       @param3 = CASE WHEN @param3 = '' THEN '0' ELSE @param3 END
       ... etc etc

尝试将变量的值与EXECUTE语句分开设置:

DECLARE @I_BRANCH_ID VARCHAR(MAX) 

SET @I_BRANCH_ID = CASE WHEN @I_BRANCH_ID = '' THEN 0 ELSE @I_BRANCH_ID END

EXEC GETBALANCE @I_BRANCH_ID

请关闭你的大写锁定。你已经问了这个问题--所以请删除这个副本。事实上,如果我只想要THORUGH CASE语句,我有太多无法使用的参数
DECLARE @I_BRANCH_ID VARCHAR(MAX)
SET @I_BRANCH_ID = CASE WHEN @I_BRANCH_ID = '' THEN '0' ELSE @I_BRANCH_ID END
EXEC GETBALANCE @I_BRANCH_ID