【问题标题】:Update multiple records to equal other records更新多条记录以等于其他记录
【发布时间】:2014-09-01 00:39:24
【问题描述】:

我有一个具有一对多关系的大型数据库。它适用于许多不同站点的计算机系统。对于每个计算机系统,需要为自动消息设置不同的电子邮件地址,这些电子邮件地址存储在数据库中。对于其中许多计算机,我需要使 2 条或更多条记录相同。我想编写一个查询(在 SQL Server 2005 中),这将允许我一次更新/复制所有记录。

例如:

dbo.email table; 
system 1 emaila = x; 
system 1 emailb = y; 
system 2 emaila = z; 
system 2 emailb = aa; 

我需要系统 1 emailb = 系统 1 emaila,我需要系统 2 emailb = 系统 2 emailb。

这可以使用一个查询吗?

谢谢

【问题讨论】:

    标签: sql sql-server-2005 sql-update


    【解决方案1】:

    这是你想要的吗?

    with toupdate as (
          select et.*,
                 min(email) over (partition by system) as an_email
          from emailtable et
         )
    update toupdate
        set email = an_email;
    

    【讨论】:

    • @AndriyM 。 . .这似乎是个好主意。 OP 只需要小心 NULL 值。
    • 我会测试并回复你。
    猜你喜欢
    • 1970-01-01
    • 2018-11-20
    • 2019-02-18
    • 2013-10-26
    • 1970-01-01
    • 2016-05-01
    • 2013-05-02
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多