2009-12-04 3 views
1

오류는 다음 저장된 프로 시저를 실행하려고 할 때 반환이다 '키워드'CASE '근처의 구문이 잘못되었습니다 "SQL 서버 2000

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 기능이 있으며, 단 하나의 오류하지만 첫 번째 사례를 가리키는 말을 뿜어 냈다.

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 기능을 오용하고있어 가정

입니다. 누구든지 해결 방법이나 해결 방법을 생각해 낼 수 있습니까?

미리 감사드립니다.

- 스탄

답변

1

, 다음

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 
+0

감사처럼 더 뭔가를하려고합니다. CASE를 사용하여 값을 할당하면 문제가 해결됩니다. – Stan

+0

np. 제어 흐름에 사용할 수없는 사례 구성에 익숙해지기가 어렵습니다. – cmsjr

1

더 많은 코드없이 말하기 어렵다. @ var1과 @ var2가 선언되었는지 확인하십시오.

CASE 결과에 무언가를 지정했는지 확인하십시오. JeremyMcGee 당신이 오히려 간부에 사건을 전달하는 것보다 임무를 수행 할 필요가 이상을 암시으로

관련 문제