如何在PL / SQL中放置序列号

时间:2018-05-14 15:04:55

标签: sql oracle

我有一个问题。

假设我的表A包含15行和1列(列名:item_name)中的15个项目,如附图所示。

enter image description here

然后是表B,其中包含5个人的姓名,编号从1到5

enter image description here(列:数字,名称)。

表A上的每个项目必须分发给表B中的人,每个人获得5项,规则是人数1从顶部获得第1个5项,第2个人获得第2个5项,依此类推至人数3。

是否有可能为表A中的前5个项目分配5个数字1,然后为接下来的5个项目分配5个数字2,依此类推,以便我可以使用数字加入2个表格,以便我知道谁得到哪些物品? 我希望的结果就像附图所示。

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用NTILE

declare @value int = (select COUNT(*) from tableA) / 5

select
    *
from
(
   select
       Item_Name,
       NTILE(@value) over (order by Item_Name) nr
   from tableA
) tbl
join tableB on tableB.Number = tbl.nr