我的查询结果如下:
ID desc Year pid
0006845503 tes1 null null
0006845503 null 2017 null
0006845503 null null 90
0006845503 null null null
我想展示这些结果:
ID desc year pid
0006845503 TEST1 2017 90
答案 0 :(得分:3)
如果列的值只出现一次(只有一个值可用),那么简单的group by应该执行任务:
SELECT t.id,t.year,t.code,MAX(t.desc) as desc,MAX(t.year) as year,MAX(t.pid) as pid
FROM YourTable t
GROUP BY t.id,t.year,t.code
答案 1 :(得分:1)
如果你知道每列只有一行会有一个值,你可以使用像min
或max
这样的聚合函数来跳过null
并返回唯一的值在专栏中。 E.g:
SELECT id, year, code, MAX("desc"), MAX("year"), MAX(pid)
FROM mytable
GROUP BY id, year, code