select top 30 a.*
, (select top 1 col1 from tableb b where a.id = b.pid order by id desc) as col1
, (select top 1 col2 from tableb b where a.id = b.pid order by id desc) as col2
, (select top 1 col3 from tableb b where a.id = b.pid order by id desc) as col3
, (select top 1 col4 from tableb b where a.id = b.pid order by id desc) as col4
from tablea
where 불라불라
order by 불라불라
;
이런 식입니다. 오라클의 경우라면 스칼라서브쿼리 부분을
(select col1 || '|' || col2 || '|' || col3 || '|' || col4 from tableb where a.id = b.id and b.id )
뭐 이런 식으로 해서
컬럼간 구분자인 '|' 를 정규식을 이용해서 제거하여 컬럼을 추출해낼텐데
sql server 2008 r2 에선 마땅한 방법이 떠오르지 않내요.
top 1 order desc 조건 때문에 left outer join 하기도 미묘한 상황입니다.
|