[英]Adding values to a new column to rows that already exist - Large table
我在 VB 上有一個 sql 數據庫,在添加所有數據之前忘記添加一個新列,超過 25k 行。 不是我將被遺忘的數據逐行添加到新列中,而是有人可以通過添加這個新列並將新數據添加到預先存在的行中來考慮嗎?
例如
ID NAME DATA
1 Alpha Cheese
2 Bravo Steak
3 Charlie Wine
So on......
到
ID NAME DATA NEW COLUMN
1 Alpha Cheese £1.50
2 Bravo Steak £5.00
3 Charlie Wine £8.00
So on......
顯然數據必須匹配到正確的行
提前致謝!
我又讀了一遍; 我認為是 SQL Server。
在這種情況下:
-- create and populate your updating table ...
CREATE TABLE newdata (
id INTEGER NOT NULL PRIMARY KEY
, pounds DECIMAL(18,2)
);
-- populate it.
INSERT INTO newdata
SELECT 1,1.50
UNION ALL SELECT 2,5.00
UNION ALL SELECT 3,8.00
;
-- with your own table ...
-- a) modify your original table. add a currency column
ALTER TABLE thetable ADD pounds DECIMAL(18,2);
-- update the new column correctly. Use the MERGE command.
-- only a WHEN MATCHED THEN clause, as you don't add any data
MERGE INTO thetable
USING newdata
ON thetable.id=newdata.id
WHEN MATCHED THEN UPDATE SET
pounds = newdata.pounds
;
-- effect:
SELECT * FROM thetable ORDER BY 1;
-- out Time: First fetch (1 row): 11.961 ms. All rows formatted: 11.998 ms
-- out id | nme | dat | pounds
-- out ----+---------+--------+--------
-- out 1 | Alpha | Cheese | 1.50
-- out 2 | Bravo | Steak | 5.00
-- out 3 | Charlie | Wine | 8.00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.