小编典典

在SQL Server更新语句中具有随机记录的更新表?

sql

我有两张桌子。Table 1大约有80行,Table 2大约有1000万行。

我想Table 2使用中的随机行更新其中的所有行Table 1。我不希望所有行都显示同一行。是否可以更新Table 2并让它为要更新的每一行随机选择一个值?

这是我尝试过的方法,但是在每一行中都放置了相同的值。

update member_info_test
set hostessid = (SELECT TOP 1 hostessId FROM hostess_test ORDER BY NEWID())

**编辑


阅读 242

收藏
2021-05-05

共1个答案

小编典典

好的,我认为这是我编写的最奇怪的查询之一,而且我认为这样做的速度太慢了。但是试一试:

UPDATE A
SET A.hostessid = B.hostessId
FROM member_info_test A
CROSS APPLY (SELECT TOP 1 hostessId
             FROM hostess_test 
             WHERE A.somecolumn = A.somecolumn
             ORDER BY NEWID()) B
2021-05-05