我有一个以 id(主键)、名称、值和 branchId 作为列的查找表。目前我有一组数据,整个记录的 branchId 相同。我需要为 name 和 value 列复制具有相同值的数据,但在同一个表中使用不同的 branchId 值。
任何有关查询/脚本以实现此目的的帮助将不胜感激。
提前致谢!
我有一个以 id(主键)、名称、值和 branchId 作为列的查找表。目前我有一组数据,整个记录的 branchId 相同。我需要为 name 和 value 列复制具有相同值的数据,但在同一个表中使用不同的 branchId 值。
任何有关查询/脚本以实现此目的的帮助将不胜感激。
提前致谢!
如果id
是IDENTITY
,它的值将自动生成:
INSERT INTO tableX --- the name of your table
(name, value, branchID)
SELECT
name, value, 23 --- branch to be added
FROM
tableX
WHERE
branchID = 12 ; --- the existing branch
对于一组 branchID 值,您可以CROSS
连接到现有表(或动态创建一个表):
INSERT INTO tableX
(name, value, branchID)
SELECT
t.name, t.value, ins.branchID
FROM
tableX AS t
CROSS JOIN
( VALUES
(1), (5), (7), (9), (10) --- branchIDs to be inserted
) AS ins (branchID)
WHERE
t.branchID = 12 ; --- the existing branchID
insert into LookupTable
(
name,
value,
branchId
)
select
name,
value,
'BranchId2'
from LookupTable
where branchId = 'BranchId1'
试试这个:
SELECT id, name, value, branchId,
row_number() over (partition by name, value order by id) new_branch_id
from tablename