Sql 在组合列上使用SELECT更新表

Sql 在组合列上使用SELECT更新表,sql,tsql,sql-server-2012,Sql,Tsql,Sql Server 2012,我需要用一个id更新表中的一列,该id是同一表中其他两列的几个字符的组合。目前,正如我所写的,它失败了,因为它不允许在子查询中返回多个值。我怎样才能让它工作 这是我的 UPDATE Users SET AccountId = ( SELECT RIGHT(lastName, 5) + RIGHT(UserId, 6) FROM Users ) 我试图以这样的方式结束: AccountID

我需要用一个id更新表中的一列,该id是同一表中其他两列的几个字符的组合。目前,正如我所写的,它失败了,因为它不允许在子查询中返回多个值。我怎样才能让它工作

这是我的

UPDATE Users
SET AccountId = (
                  SELECT RIGHT(lastName, 5) + RIGHT(UserId, 6)
                  FROM Users
                )
我试图以这样的方式结束:

AccountID

lliams994521

ohnson103297

..

如果
更新
基于相同记录的字段,则无需执行
选择


如果
更新
基于相同记录的字段,则无需执行
选择


你可以这样做:

UPDATE Users
SET AccoundId = (SELECT RIGHT(lastName, 5) + RIGHT(UserId, 6) FROM users AS SubUsers WHERE SubUsers.UserId = MainUsers.UserId)
FROM Users MainUsers
在你的情况下,这没有任何意义。正如@GiorgosBetsos提到的


如果
更新
基于 相同记录


你可以这样做:

UPDATE Users
SET AccoundId = (SELECT RIGHT(lastName, 5) + RIGHT(UserId, 6) FROM users AS SubUsers WHERE SubUsers.UserId = MainUsers.UserId)
FROM Users MainUsers
在你的情况下,这没有任何意义。正如@GiorgosBetsos提到的


如果
更新
基于 相同记录


哇,这很简单。谢谢哇,这很简单。谢谢