如何根据另一个表的条件创建序号?
问题描述:
我想在表中添加一列,但我试图找出一种方法来分配序列号到这个列。如何根据另一个表的条件创建序号?
- 柱
ID
和C_Seq_No
是从一个表(A) -
D_Seq_No
和Type
是从另一个表(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
答
您正在寻找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。 。 。没有要求列来自同一张表。 –
什么查询创建该结果?因为如果你有两张表,那就没有任何连接来生成它。 –
更新表B设置D_Seq_No – EkansDasnakE
该查询不连接表A和B –