使用与两个或多个值匹配的JOIN进行SQL UPDATE

使用与两个或多个值匹配的JOIN进行SQL UPDATE,第1张

使用与两个或多个值匹配的JOIN进行SQL UPDATE

如果您可以定义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;


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5675525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存