回答

收藏

更新并连接多行,使用哪一行值?

技术问答 技术问答 512 人阅读 | 0 人回复 | 2023-09-14

假设我有以下句子,内部连接的结果是3行,其中a.Id =
4 ]* v1 G8 a3 P. g1 x6 V& Cb.Id,但是3行中的每行都有不同的b.Value。因为只更新了tableA所以在更新中使用了哪一行?
, m/ ?. O8 z& L6 a, IUPDATE aSET a.Value = b.ValueFROM tableA AS aINNER JOIN tableB as b ON a.Id = b.Id               
4 ^% a8 f( j" ]) H8 M    解决方案:                                                                ! z7 @7 t3 f$ x* _, b$ c
                                                                我认为没有规则,你不能依赖特定的结果。: s( ?+ W6 N' k; S/ q$ G, ]. y
如果要排在特定行之后,请说出最后一行,可以用apply,例如:" Z5 p0 ?+ o; g7 S
UPDATE  aSET     a.Value = b.ValueFROM    tableA AS aCROSS APPLY   select  top 1 *        from    tableB as b        where   b.id = a.id        order by                DateColumn desc       as b
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则