如果您可以定义Table_2中记录的顺序(最后是什么意思?),则可以使用窗口函数来过滤Table_2,以仅包括与之匹配的每组记录的最后一条记录:
UPDATe t1SET t1.col_b = t2.col_bFROM Table_1 t1 JOIN (SELECt col_a, col_b, ROW_NUMBER() OVER (PARTITION BY col_a ORDER BY <order by field list goes here> DESC) AS RNo FROM Table_2) t2 ON t1.col_a = t2.col_a AND t2.RNo=1;
在特殊情况下,order by字段是col_b,那么您可以简单地使用(这适用于所有版本的SQL Server):
UPDATe t1SET t1.col_b = t2.col_bFROM Table_1 t1 JOIN (SELECt col_a, MAX(col_b) AS col_b FROM Table_2 GROUP BY col_a) t2 ON t1.col_a = t2.col_a;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)