我需要让Sp将学生分发到他们的部分 该过程采用2个字符串参数StuID和SecID
以防我将'1,2,3,4,5'作为StuID发送,'a,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
答案 0 :(得分: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