gpt4 book ai didi

mysql - 用另一行的值替换查询中的 NULL 值

转载 作者:行者123 更新时间:2023-11-29 06:02:27 25 4
gpt4 key购买 nike

如何将结果集中的所有 null 值替换为同一表中另一行的值? (就像回退查询)

示例模式:

CREATE TABLE parent (
id INTEGER NOT NULL AUTO_INCREMENT,
int1 INTEGER,
int2 INTEGER,
int3 INTEGER,
PRIMARY KEY (id)
)

查询:

SELECT * FROM table1
WHERE id = ?

但我需要将所有 null 值替换为另一行的值。我正在寻找这样的东西:

SELECT * FROM table1 WHERE id = ?
REPLACE ALL NULL VALUES WITH (
SELECT * FROM table1 WHERE id = ?
)

例子:

id    int1    int2   int3
---------------------------
1 1 null 1
2 null null 1
3 1 4 0

当我首先查询 id 1 和 id 3 作为回退时,我希望结果是:

id    int1   int2   int3
---------------------------
1 1 4 1

最佳答案

您可以使用 joincoalesce() 执行此操作:

select t1.id,
coalesce(t1.int1, tt1.int1) as int1,
coalesce(t1.int2, tt1.int2) as int2,
coalesce(t1.int3, tt1.int3) as int3
from table1 t1 join
table1 tt1
on tt1.id = 3
where t1.id = 1;

关于mysql - 用另一行的值替换查询中的 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43940381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com