繁体   English   中英

在同一个表中的 SQL Server 中将数据从一行复制到另一行

[英]Copy data from one row to another in SQL Server in the same table

我有一个包含两种数据变体的表:

MYDATA

Address           StreetNumber       Provider
----------------------------------------------
123 Main Street   1                  VersionA
123 Main Street   NULL               VersionB

我想将版本 A 的 StreetNumber 更新为版本 B。

将有数千条记录,匹配​​将在地址列上

我想用:

update MYDATA
set StreetNumber = (select top 1 streetnumber
                    from MYDATA Goo 
                    where Goo.Address = Address and Provider = 'VersionA')
where Provider = 'VersionB'

但似乎嵌套没有查看要更新的行......而是选择一条记录并更新具有相同街道编号的所有记录?

应该工作:

UPDATE MDb
SET StreetNumber = MDa.StreetNumber
FROM MYDATA MDb
     JOIN MYDATA MDa ON MDb.[Address] = MDa.[Address]
WHERE MDb.Provider = 'VersionB'
  AND MDa.Provider = 'VersionA'; --You can move this clause to the ON if you prefer

遇到类似的问题。 在同一列下和同一表内将数据从一行复制到另一行。 也许这会有所帮助。

   UPDATE MyData 
   SET StreetNumber = newdata.StreetNumber

   FROM (
   SELECT Password FROM [MyDB].[dbo].[MyData]
   WHERE Provider = VersionA
   )newdata

   WHERE Provider = VersionB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM