SQL 服务器将随机数据从一个 table 复制到另一个
SQL Server Copy Random data from one table to another
我有 2 tables 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
table 已经填充了 details
,但是 data
目前是 NULL
。
我想将 行 nonsense
随机 的数据复制到 [=14= 的每一行中]. nonsense
小了,自然会有重复,没关系。
这不有效:
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());
我有 2 tables 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
table 已经填充了 details
,但是 data
目前是 NULL
。
我想将 行 nonsense
随机 的数据复制到 [=14= 的每一行中]. nonsense
小了,自然会有重复,没关系。
这不有效:
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());