0

生徒をセクションに配布するためにSpを作成する必要があります。手順は、StuIDとSecIDの2つの文字列パラメーターを取ります

'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 に答える