0

我有一个以 id(主键)、名称、值和 branchId 作为列的查找表。目前我有一组数据,整个记录的 branchId 相同。我需要为 name 和 value 列复制具有相同值的数据,但在同一个表中使用不同的 branchId 值。

任何有关查询/脚本以实现此目的的帮助将不胜感激。

提前致谢!

4

3 回答 3

1

如果idIDENTITY,它的值将自动生成:

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
于 2012-10-08T15:25:29.533 回答
1
insert into LookupTable
(
    name,
    value,
    branchId
)
select
    name,
    value,
    'BranchId2'
from LookupTable
where branchId = 'BranchId1'
于 2012-10-08T15:27:33.293 回答
0

试试这个:

SELECT  id, name, value, branchId, 
row_number() over (partition by name, value order by id) new_branch_id 
from tablename
于 2012-10-08T15:19:06.043 回答