我想选择并将表格中的顶部4650字段插入表格b列e。如何使用表格列g中的数据随机填充此列?如何替换e列中已存在的数据?在多个部分中这样做会更容易吗?
答案 0 :(得分: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
你也可以利用CTE
;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
我们需要表格的结构来完全回答你的问题
答案 1 :(得分:0)
这个答案假设有两件事:A)你的Products表有一个不间断的自动递增Id列(通过unbroken我的意思是没有删除的行会导致int跳转)和b)你的Orders有一个int PK Id列< / p>
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。
答案 2 :(得分:0)
嗯,我实际上是完全不同的。我用2个字段Temp1,Temp2创建了一个临时表。我取出所有产品并将它们放入Temp1然后使用了两个不同的更新。一个用于向Temp2添加随机数字,另一个用于将TableToUpdate更改为那些临时数字。这样我可以对其他表执行此操作,数据看起来不同但保留了销售预测结构。
更新TempTable SET [Temp2] = abs(校验和(NewId()))%5000 + 10000
更新TableToUpdate SET Product =(SELECT Temp2 来自TempTable WHERE TableToUpdate.Product = TempTable.Temp1)
感谢大家的意见。