GROUP BY
不适用于此
我有这个:
-----------------
name col1 col2
-----------------
a null 1
b null 3
a 3 null
b 4 null
我需要这个结果:
-----------------
name col1 col2
-----------------
a 3 1
b 4 3
答案 0 :(得分:1)
使用MAX
消除NULL,然后使用GROUP BY
函数。
SELECT name, MAX(col1) AS col1, MAX(col2) AS col2
FROM yourtable
GROUP BY name
输出:
name col1 col2
a 3 1
b 4 3
既然你说GROUP BY
不适用于此我假设它是更大查询的一部分,可能会使用子查询来获得结果?
SELECT t.name,
(SELECT MAX(ta.col1) FROM yourtable ta WHERE ta.name = t.name) AS col1,
(SELECT MAX(tb.col2) FROM yourtable tb WHERE tb.name = t.name) AS col2
FROM yourtable t
GROUP BY t.name
答案 1 :(得分:0)
我会说GROUP BY
在这里很完美:
select name, max(col1) col1, max(col2) col2
from tablename
group by name