0

我需要让 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
4

1 回答 1

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
于 2013-10-07T07:48:01.177 回答