我正在学习SQL。
假设我有一个数据表a(让我们假设自动增量字段为主键)
ID FIELD1 FIELD2 FIELD3 FIELD4 FIELD5
1 1 null null null null
1 null 2 null 4 null
1 null null 3 null null
1 null null null null 5
由于id相同,但值分布在不同的记录中。是否可以使用SQL说
来获取记录?ID FIELD1 FIELD2 FIELD3 FIELD4 FIELD5
1 1 2 3 4 5
如果我说错了请纠正我
您应该能够使用GROUP BY的聚合函数来获得结果:
select id,
max(field1) as field1,
max(field2) as field2,
max(field3) as field3,
max(field4) as field4,
max(field5) as field5
from yourtable
group by id;
参见SQL Fiddle with Demo
Select Id, MAX(ISNULL(FIELD1, 0)), MAX(ISNULL(FIELD2, 0)), MAX(ISNULL(FIELD3, 0)), MAX(ISNULL(FIELD4, 0)), MAX(ISNULL(FIELD5, 0)) From tableA Group By Id