2017-01-29 7 views
0

다음 줄을 사용하려고하면 "IN '키워드 근처에서 구문이 잘못되었습니다."
사례 중 THEN에서 IN 문 사용

WHERE 
    CASE 
     WHEN @CostCentreID IS NOT NULL THEN CI.CostCentreID IN(SELECT CAST(Item AS INTEGER) FROM dbo.SplitString(@CostCentreID, ',')) 
    END  

무엇이 잘못되었는지 알 수 없습니다.

THEN 명령은 CASE 문 외부에서 올바르게 작동합니다. NULL 항목을 캡처하려고합니다. 완료되면 NULL을 검사하여 검사를 건너 뜁니다.

답변

1

당신은 쓸 수 있습니다 WHERE 같은 절 뭔가 .....

WHERE @CostCentreID IS NULL 
    OR CI.CostCentreID IN (
          SELECT CAST(Item AS INTEGER) 
          FROM dbo.SplitString(@CostCentreID, ',') 
         )