2013-10-07 3 views
0

는 내가 절차가 나는 StuID 및 '는 같은'1,2,3,4,5를 보낼 한 경우 2 개 문자열 매개 변수 StuID 및 SecID필터로 교차 가입 하시겠습니까?

을 SP 자신의 섹션 학생들을 배포하기 위해 필요한, SecID 으로 내가 spliting 기능을 사용하고 B '잘 테이블

를 반환하는
Tb1 | Tb2 
1 | a 
2 | b 
3 | 
4 | 
5 | 

나는 크로스 가입을 통해 그것을 할 것을 시도했다

1 a 
2 b 
3 a 
4 b 
5 a 
.... 

다음과 같은 결과를 얻을 수 있지만하지 않았다 방법 보여 주다 결과가 내가 원하는

select US.vItem as UserID,SE.vItem as Section 
from split(@pUserID,',') us 
cross join split(@pSectionID,',') se 

답변

1

Cross join 그런 식으로 작동하지 않습니다.

이렇게하면 원하는 결과를 얻을 수 있지만 교묘 한 문제입니다.

select t1.vItem, t2.VItem from 
    (select *, ROW_NUMBER() over (order by vItem) r from US) t1 
     inner join 
    (select *, ROW_NUMBER() over (order by vItem desc) -1 r from SE) t2 
     on t2.r = t1.r % (select COUNT(*) from SE) 
order by t1.vItem 
+0

thankyou :)하지만 두 번째 테이블이 2 행이면 괜찮습니다. – abodvdv

관련 문제