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

Oracle中如何用列的最大值替换NULL值

将tab1表中id列的NULL值替换为该列最大值

原表结构及数据

idnameemail
1Stasta@example.com
NULLDannydany@example.com
3Elleelle@example.com

期望结果

idnameemail
1Stasta@example.com
3Dannydany@example.com
3Elleelle@example.com

解决方案

1. 查询时临时替换(不修改原表)

使用COALESCE函数结合子查询获取id列最大值,仅在查询结果中替换NULL,不改动原表数据:

SELECT 
    COALESCE(id, (SELECT MAX(id) FROM tab1)) AS id,
    name,
    email
FROM tab1;

2. 永久更新原表数据

如果需要直接修改原表中的NULL值,执行UPDATE语句:

UPDATE tab1
SET id = (SELECT MAX(id) FROM tab1)
WHERE id IS NULL;

注意:若id列是自增主键,该操作可能触发唯一性约束冲突,需根据实际表结构调整。

内容的提问来源于stack exchange,提问作者Prabhat Bhatt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:35:24