如何根据另一个表的条件创建序号?

问题描述:

我想在表中添加一列,但我试图找出一种方法来分配序列号到这个列。如何根据另一个表的条件创建序号?

  • IDC_Seq_No是从一个表(A)
  • D_Seq_NoType是从另一个表(B)。

我想加入2代表一起在那里随时C_Seq_No显示了“1”为一个ID三次号码,然后D_Seq_No would创建1, 2, and 3的序列号为ID。

这里是我,当我运行查询加入2表,因为我没有任何分配给D_Seq_No列尚未:

 TABLE A       TABLE B 
ID   C_Seq_No | D_Seq_No   Type 
123    1  |  NULL   02 
123    1  |  NULL   04 
123    1  |  NULL   06 
123    2  |  NULL   03 
123    2  |  NULL   05 
123    2  |  NULL   07 

这是我想在我的查询结果集看像加入这两个表时一样:

ID   C_Seq_No  D_Seq_No   Type 
123    1    1    02 
123    1    2    04 
123    1    3    06 
123    2    1    03 
123    2    2    05 
123    2    3    07 
+0

什么查询创建该结果?因为如果你有两张表,那就没有任何连接来生成它。 –

+0

更新表B设置D_Seq_No – EkansDasnakE

+0

该查询不连接表A和B –

您正在寻找row_number。该调用看起来像这样:

select . . ., 
     row_number() over (partition by id, c_seq_no order by type) as d_seq_no, 
     type 
from . . . 
+0

如果id和c_seq_no来自另一个表,那么可以这样做吗?我们不能使用join语句吗? – EkansDasnakE

+0

@EkansDasnakE。 。 。没有要求列来自同一张表。 –