使用SQL Server选择

问题描述:

选择查询我下面的表格有后:使用SQL Server选择

id CN SN DC 
1 null null null 
1 1234 null 1245 
1 null 2536 null 
2 null null null 
2 null 2596 null 

我想使SQL SERVER类似使用SELECT命令:

id CN SN DC 
1 1234 2536 1245 
2 null 2596 null 

谁能帮我说,请? 谢谢!

+0

什么是会产生这种结果的规则? – Oded 2012-03-29 15:14:23

假设你要为每列返回最大值:我不知道,如果我得到这个权利

select id, max(CN) as CN, max(SN) as SN, max(DC) as DC 
from MyTable 
group by id 
+0

@satish该“id”列的最大值。所以对于id = 1,它返回2536,对于id = 2,它返回2596. – RedFilter 2012-03-29 15:21:31

+0

谢谢你的解决方案。它的工作原理! – Lavy 2012-03-29 15:24:50

+0

然后,您应该将此答案标记为已接受。 :) – 2012-03-29 15:42:00

,但你要添加在ID 1一起一切(列)和id 2相同?

Select id, SUM(ISNULL(CN, 0)), SUM(ISNULL(SN, 0)), SUM(ISNULL(DC, 0)) FROM table 
Group by id 

你不告诉做什么时,不止一个“CN”,“SN”或“DC”存在于一个ID,所以有您的问题,许多解决方案,例如:

SELECT id, SUM(CN) CN, SUM(SN) SN, SUM(DC) DC 
FROM Table1 
GROUP BY id; 

SELECT id, MAX(CN) CN, MAX(SN) SN, MAX(DC) DC 
FROM Table1 
GROUP BY id; 

都同样正确。

演示here

您使用的是FULL OUTER JOIN,对不对?

也许你想只是使用左外部联接

+0

那么你可以显示'LEFT OUTER JOIN'语法,将产生所需的结果? – 2012-03-29 15:48:29

+0

忘记它......正确的答案是使用“group by”和最大聚合函数 – MrJames 2012-03-29 19:20:44