SQL UPDATE colB中的相同序列号用于colA中的相同值集
需要UPDATE SQL语句(首选)或PL/SQL
// Here is script for table create
CREATE TABLE temp
(
"COL_A" VARCHAR2(128 BYTE),
"COL_B" NUMBER
);
// script for data load
INSERT INTO temp VALUES ('A', null);
INSERT INTO temp VALUES ('A', null);
INSERT INTO temp VALUES ('B', null);
INSERT INTO temp VALUES ('C', null);
INSERT INTO temp VALUES ('C', null);
INSERT INTO temp VALUES ('C', null);
INSERT INTO temp VALUES ('D', null);
INSERT INTO temp VALUES ('D', null);
之前
-------
TEMP TABLE
-------------
COL_A, COL_B
-------------
A, null
A, null
B, null
C, null
D, null
C, null
D, null
C, null
预期输出
-------------
COL_A, COL_B
-------------
A, 1
A, 1
B, 2
C, 3
D, 4
C, 3
D, 4
C, 3
对于COL_A中的相同值,我们将为N行生成并重用相同的序列号,B列的值来自序列号temp_seq我尝试了几个想法,但我不能为相同的值重用相同的序列号(它正在生成新的序列号)。
2条答案
按热度按时间ymzxtsji1#
您可以:
结果:
请参见db<>fiddle上的运行示例。
1szpjjfi2#
merge
可能是另一种选择: