列として 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