2011-08-04 4 views
2

T-SQL에있는 case 문의 다음 부분에 여러 값을 지정할 수 있는지 궁금합니다.SQL CASE의 THEN 문에 여러 값 문

쿼리의 일부 테이블에이 코드를 사용하여 코드 묶음을 첨부했습니다. 스 니펫에 주석을 포함 시켰습니다.

LEFT JOIN Business B ON v.BusID = B.BusID 
LEFT JOIN BusinessTypeKey T ON B.BusinessTypeID = T.BusTypeID 
LEFT JOIN Location L ON L.BusID = B.BusID 
AND L.HeadQuarters = CASE 
WHEN (SELECT COUNT(1) from Location L2 
WHERE L2.BusID = B.BusID) = 1                   
THEN 1,0 -- Would like to specify either 1 or 0 here. I suppose I could also make it euqal to -> L.HeadQuarters but would like a better way to impose it                         
ELSE 1 
END 

답변

4

이 조금 추한이지만, 가정 본사 진수/숫자 형식 만 정수 값 아니다,

AND L.HeadQuarters BETWEEN CASE WHEN (SELECT COUNT...) = 1 THEN 0 ELSE 1 END AND 1; 
+0

+1 - 그래,'IN'은 CASE' 분명히'와 호환되지 않습니다 . – JNK

0

의미 하시겠습니까?

LEFT JOIN whatever 
ON... 
CASE...WHEN...THEN...END = 1 
OR 
CASE...WHEN...THEN...END = 0