我将再次解释我想要做什么,希望你可以提供帮助。
表1有4061行,其中包含列 [名称],[地址1],[地址2],[地址3],[市],[状态],[拉链],[国家],[电话] 和其他20个专栏。表1是需要重新识别的数据。表1总共有4061行中有1534个不同的[名称]行。
表2包含自动生成的数据,其中包含相同的列。我想用表2中的数据替换表1中的上述列。我想根据表1中的[Name]选择distinct,然后选择[Name],[Address1],[Address2],[Address3],[城市],[州],[邮编],[国家],[电话]与表2中的一组新的不同数据。
我不想只使用新地址更新每一行,因为这会搞砸数据的一致性。通过仅替换不同,这将允许我在更改表1中的行数据时保持数据一致性。当我完成时,我希望有1534个不同的新的去标识[名称] [地址1],[地址2],[地址3 ],[城市],[国家],[邮编],[国家],[电话]见表2中的表格。
答案 0 :(得分:0)
您可以在join
中使用update
。您可以使用row_number()
生成1500行的连接键:
update toupdate
set t.address = f.address
from (select t.*, row_number() over (order by newid()) as seqnum
from table t
) toupdate join
(select f.*, row_number() over (order by newid()) as seqnum
fake f
) f
on toupdate.seqnum = f.seqnum and t.seqnum <= 1500;
答案 1 :(得分:0)
以下是我最终如何做到这一点。 首先,我运行一个语句来选择distinct并将其插入表中。
Select Distinct [Name],[Address1],[City],[State],[Zip],[Country],[Phone]
INTO APMAST2
FROM APMAST
然后我在APMAST2中添加了name2列,并使用语句在APMAST2中创建了一个顺序id字段。
DECLARE @id INT
SET @id = 0
UPDATE APMAST2
SET @id = id = @id + 1
GO
现在我在APMAST2中有我的不同信息以及空白名称字段和顺序ID字段。现在我可以用我生成的fakenames表来加入这个日期。 HERE使用他们的批量工具。
使用加入声明我使用APMAST2
加入了假数据Update dbo.APMAST2
SET dbo.APMAST2.Name = dbo.fakenames.company,
dbo.APMAST2.Address1 = dbo.fakenames.streetaddress,
dbo.APMAST2.City = dbo.fakenames.City,
dbo.APMAST2.State = dbo.fakenames.State,
dbo.APMAST2.Zip = dbo.fakenames.zipcode,
dbo.APMAST2.Country = dbo.fakenames.countryfull,
dbo.APMAST2.Phone = dbo.fakenames.telephonenumber
FROM
dbo.APMAST2
INNER JOIN
dbo.fakenames
ON dbo.fakenames.number = dbo.APMAST2.id
现在我已经加载了假数据,但我保留了原始名称字段,因此我可以将此数据重新加载到我的完整表ARMAST中,所以现在我可以在ARMAST2和ARMAST之间进行连接。
Update dbo.APMAST
SET dbo.APMAST.Name = dbo.APMAST2.Name,
dbo.APMAST.Address1 = dbo.APMAST2.Address1,
dbo.APMAST.City = dbo.APMAST2.City,
dbo.APMAST.State = dbo.APMAST2.State,
dbo.APMAST.Zip = dbo.APMAST2.Zip,
dbo.APMAST.Country = dbo.APMAST2.Country,
dbo.APMAST.Phone = dbo.APMAST2.Phone
FROM
dbo.APMAST
INNER JOIN
dbo.apmast2
ON dbo.apmast.name = dbo.APMAST2.name2
现在我的原始表中包含了所有虚假数据,但它保留了它的完整性,大部分都是如此,因此报告时数据看起来很好但是已经去识别。您现在可以删除APMAST2,或者如果您以后需要将其与其他数据匹配,请保留它。我知道这很长,我相信有更好的方法可以做到这一点,但这就是我做的方式,欢迎提出建议。