Sql 需要随机化用户表中的名称

Sql 需要随机化用户表中的名称,sql,tsql,Sql,Tsql,我有下面的查询,它允许我按行号连接两个表,我正在尝试修改它,以便它使用随机名称表中的随机名称更新订阅服务器表 select fo.*, so.* from (select *, row_number() over (order by FirstName) as rn from randomnames ) fo join (select *, row_number() over (order by ID) as rn

我有下面的查询,它允许我按行号连接两个表,我正在尝试修改它,以便它使用随机名称表中的随机名称更新订阅服务器表

select fo.*, so.*
from (select *, 
              row_number() over (order by FirstName) as rn
      from randomnames
) fo
join (select *,
             row_number() over (order by ID) as rn
       from subscribers) so on fo.rn = so.rn
我将其更新为以下内容以使其正常工作

update subscribers set 
FirstName = fo.Firstname,
LastName = fo.LastName
from
 (select *, 
              row_number() over (order by firstname) as rn
      from _randomnames
) fo
join (select *,
             row_number() over (order by ID desc) as rn
       from subscribers) so on fo.rn = so.rn

       where so.ID = subscribers.ID

请尝试以下查询:

;WITH CTE AS
(
    SELECT *, ROW_NUMBER() OVER (ORDER BY ID) AS rn
    FROM subscribers
)
UPDATE so
SET so.[Name] = fo.[Name]
FROM CTE so
INNER JOIN (SELECT *, ROW_NUMBER() OVER (ORDER BY FirstName) AS rn
            FROM randomnames) fo
ON fo.rn = so.rn

我终于想明白了,但既然你回答了,我就接受了。实际上并没有试着看看它是否有效though@Jhorra-我很感激您标记为已接受,但除非它确实有效,否则您不应该这样做,以免混淆未来readers@Jhorra:如果你找到了自己的解决方案,你应该发布你的解决方案作为问题的答案。甚至可能接受它。