2011-08-04 6 views
2

case文のthen部分に複数の値を指定できるかどうかはT-SQLですか?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