加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 更新和连接多行,使用哪一行的值?

发布时间:2020-12-12 16:37:21 所属栏目:MsSql教程 来源:网络整理
导读:假设我有以下语句,并且内部连接会在3行中导出a.Id = b.Id,但是3行中的每一行都有不同的b.Value.由于tableA中只有一行正在更新,更新中会使用哪三个值? UPDATE aSET a.Value = b.ValueFROM tableA AS aINNER JOIN tableB as b ON a.Id = b.Id 解决方法 我不认
假设我有以下语句,并且内部连接会在3行中导出a.Id = b.Id,但是3行中的每一行都有不同的b.Value.由于tableA中只有一行正在更新,更新中会使用哪三个值?
UPDATE a
SET a.Value = b.Value
FROM tableA AS a
INNER JOIN tableB as b 
ON a.Id = b.Id

解决方法

我不认为这种情况有规则,你不能依赖于一个特定的结果.

如果你是一个特定的行,说最新的一个,你可以使用apply,如:

UPDATE  a
SET     a.Value = b.Value
FROM    tableA AS a
CROSS APPLY
        (
        select  top 1 *
        from    tableB as b
        where   b.id = a.id
        order by
                DateColumn desc
        ) as b

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读