You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SQL查询用表B修正价格覆盖表A列值生成结果表

实现商品价格优先取修正值的查询

表结构说明

  • 表A(商品基础价格表):
item | price
-------------
book | 20  
copy | 30   
pen  | 10
apple| 5
  • 表B(价格修正表):
item | price
-------------
copy | 55   
apple| 3
towel| 13

查询SQL语句

要获取表A所有商品,优先使用表B的修正价格,无修正则保留表A原价格,可以用左连接结合COALESCE函数实现:

SELECT 
    a.item,
    COALESCE(b.price, a.price) AS updated_price
FROM 
    表A a
LEFT JOIN 
    表B b ON a.item = b.item;

逻辑说明

  1. LEFT JOIN确保保留表A的所有商品记录,即使表B中没有对应商品的修正信息
  2. COALESCE函数会依次取参数中的非空值:如果表B中存在对应商品的价格,则取b.price;否则取表A的原价格a.price

查询结果

执行上述语句后,将得到期望的结果表C:

item | updated_price
-------------
book | 20  
copy | 55   
pen  | 10
apple| 3

内容的提问来源于stack exchange,提问作者Joris Kinable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:23:18