{{1}}
这只是将table1.firstname设置为所有记录的相同值。我知道可以这样做,但我在网上看到的所有内容都要求两个表中的行数相同(或者至少表1中的数量更多)。 table1中有200,000条记录,table2中有200条记录。当行计数关闭时,如何将table1.firstname设置为table2.firstname中的随机值?
答案 0 :(得分:4)
DECLARE @t1 TABLE (a INT)
DECLARE @t2 TABLE (b INT, c INT)
INSERT INTO @t1(a)
VALUES (0), (1), (2), (3), (4), (5)
INSERT INTO @t2(b)
VALUES (0), (1), (2)
UPDATE t2
SET c = t1.a
FROM @t2 t2
CROSS APPLY (
SELECT TOP(1) t1.a
FROM @t1 t1
WHERE t2.b IS NOT NULL -- any calculations for t2 columns
ORDER BY NEWID()
) t1
SELECT * FROM @t2
输出 -
b c
----------- -----------
0 5
1 1
2 0