2014-09-10 86 views
0

我想選擇並從表格列g插入頂部4650字段到表b列e。我怎樣才能隨機地填寫表中的數據g列?如何替換列e中已存在的數據?這會更容易做到多個部分?SQL選擇頂部和隨機填充

+3

(1)你使用什麼數據庫? (2)你想要隨機填寫數值還是希望按照某些標準排列頂部字段? – 2014-09-10 13:41:33

+0

兩張桌子之間有什麼關係嗎? – 2014-09-10 13:58:01

+0

首先刪除table b cole中的所有值。然後嘗試插入colg中表中的值。 – 2014-09-10 14:01:02

回答

1

如果這只是單列,那麼這應該適合你。

insert into tableB (columnE) 
select top(4650) columnG from tableA 

如果在表之間的關係,那麼你可以做這樣的事情

Update x 
set columnE = y.columnG 
from tableB as x 
inner join (select top(4650) ID from tableA) as y 
on x.ID = y.ID 

,你也可以利用熱膨脹係數

;with as 
(
    select top (4650) id,ColumnG 
    from TableA 
) Y 

update X 
set columnE = Y.ColumnG 
from TableB as X 
inner join Y on x.ID = y.ID 

我們需要表的結構完全回答你的問題

0

這個答案假設2件事:A)你的產品表ha S上的完整自動遞增ID列(通過不間斷我的意思是沒有刪除的行,將導致INT跳)和b)您的訂單有一個int PK Id列

DECLARE @MaxProductId int 
SELECT @MaxProductId = MAX(Id) FROM Product 

SELECT p.Description, o.Id 
FROM Product p 
JOIN Order o 
    ON p.Id = o.Id % @MaxProductId 

這將隨意加入一個產品的訂購。如果你喜歡你所看到的,你可以將p的列更改爲你的g列。然後,您可以使用UPDATE和此選擇來加入您的訂單ID。

0

那麼我真的去了這個完全不同的。我做了一個臨時表,有兩個字段,Temp1,Temp2。我拉出所有的產品,並將它們放入Temp1中,然後使用兩個不同的更新。一個將隨機數字添加到Temp2,另一個將我的TableToUpdate更改爲這些臨時數字。通過這種方式,我可以對其他表格執行此操作,數據看起來不同但保持銷售預測結構。

UPDATE不是Temptable SET [TEMP2] = ABS(校驗和(NEWID()))%5000 + 10000

UPDATE TableToUpdate SET產品=(SELECT TEMP2 FROM不是Temptable WHERE TableToUpdate.Product = TempTable.Temp1 )

謝謝大家的意見。