如何使用同一个表中另一行的值替换结果集中的所有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
答案 0 :(得分:0)
看看case。
select case mycolumn is null
when 1 then myothercolumn
else mycolumn
end
from mytable
您还可以将case
- when
嵌入到另一个中。这足以让您解决问题。