我有 2 张桌子stuff
和nonsense
. nonsense
与 大小不同stuff
;在这种情况下,它有更少的行,但它可能有更多。
结构是这样的:
CREATE TABLE stuff (
id INT PRIMARY KEY,
details VARCHAR(MAX),
data VARCHAR(MAX)
);
CREATE TABLE nonsense (
id INT PRIMARY KEY,
data VARCHAR(MAX)
);
该stuff
表已填充了details
,但是data
是NULL
现在。
我想将数据从复制一个排nonsense
随机到的每一行stuff
。既然nonsense
小了,自然会有重复的,这也OK。
这并不能正常工作:
UPDATE stuff
SET data=(SELECT TOP 1 data FROM nonsense ORDER BY NewId());
大概子查询在查询的其余部分之前评估一次。然而,这正是我想要的结果。
我如何实现这一目标?
您需要关联子查询以针对每条记录运行它。
UPDATE stuff
SET data=(SELECT TOP 1 data
FROM nonsense
where stuff.id = stuff.id --here
ORDER BY NewId());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句