我有一个包含一对多关系的大型数据库。它适用于许多不同站点的计算机系统。对于每个计算机系统,需要为自动消息设置不同的电子邮件地址,这些地址存储在数据库中。对于许多这些计算机,我需要使两个或更多的记录相同。我想编写一个查询(在SQL Server 2005中),这将允许我一次更新/复制所有记录。
例如:
dbo.email table;
system 1 emaila = x;
system 1 emailb = y;
system 2 emaila = z;
system 2 emailb = aa;
我需要系统1 emailb = system 1 emaila,我需要系统2 emailb = system 2 emailb。
这可以使用一个查询吗?
谢谢
答案 0 :(得分:2)
这样做你想要的吗?
with toupdate as (
select et.*,
min(email) over (partition by system) as an_email
from emailtable et
)
update toupdate
set email = an_email;