这个问题可能会误导人,我可以在这里解释这个问题:
userId col1 col2
001 null null
001 1 null
002 1 1
002 null 1
002 null null
003 null 1
003 1 null
查询的最终结果
001 1 null
002 1 1
003 1 1
我在一个用户表中有多条记录。有些列包含值,有些列不包含。我想要如上所示的最终结果。如果某个用户的任意行中的任意列都存在一个值,我希望这个值出现在最终结果集中。
我希望上面的例子能让你明白。
使用max:
select userId, max(col1) as c1, max(col2) as c2
from userTbl
group by userId