2013-10-07 59 views
0

我需要SP給學生分發到他們的部分 過程需要2個字符串參數StuID和SecID交叉加入過濾器?

的情況下,我送「1,2,3,4,5」作爲StuID和「一個, b」爲SecID 我使用的分裂功能,以及返回表

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