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