首先,讓我們設置你的表定義:http://sqlfiddle.com/#!6/6b644c/1
create table d (id int, num int);
create table f (id int, d_id int, d_num int);
insert into d (id, num) values
(1,23),
(1,24),
(1,25),
(2,22),
(2,23);
那麼這應該得到您所指定的結果。
insert into f (id, d_id, d_num)
select row_number() over (order by num), d.id, d.num
from d
where d.id = 1;
如果你想重新開始新id
計數器爲每個現有的,則包括partition by
條款並留下關閉where
這樣的:http://sqlfiddle.com/#!6/d9906/1。
insert into f (id, d_id, d_num)
select row_number() over (partition by id order by num), d.id, d.num
from d
請在您要查找的RDBMS(如Sql Server,Oracle,MySQL)中添加標籤。 –
你可以添加更多細節嗎?這些行應該滿足什麼條件才能插入表f中。 – brenners1302
在你的例子中,你的意思是'where number = 1)'或'where id = 1)'? –