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

如何在不修改原表的情况下通过SQL查询替换列值

实现查询时替换列值(不修改原表)

可以通过左连接(LEFT JOIN)结合COALESCE函数实现需求:关联translation表获取对应翻译值,若没有匹配的翻译则保留原表数据,全程不会改动cities表的原始数据。

示例SQL查询

SELECT
    c.Id,
    COALESCE(t_name.value, c.name) AS name,
    COALESCE(t_timezone.value, c.timezone) AS timezone
FROM cities c
LEFT JOIN translation t_name 
    ON c.Id = t_name.reference_id 
    AND t_name.field = 'name'
LEFT JOIN translation t_timezone 
    ON c.Id = t_timezone.reference_id 
    AND t_timezone.field = 'timezone';

代码说明

  • 对translation表做两次左连接,分别匹配name和timezone字段的翻译记录
  • COALESCE函数会优先返回第一个非空值:如果找到对应翻译就用translation.value,否则用原表cities的列值
  • 左连接保证即使没有翻译记录(比如Id=1的Paris),也能保留原表的完整行数据

查询结果

Idnametimezone
1ParisCET
2パリタイムゾーン

内容的提问来源于stack exchange,提问作者Ahmed Al Tayeh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 16:55:24