我有一个包含3列的表。该表在一定日期存储一个国家的人口。简单的例子,使用数据透视表重构表中的数据并处理空值
cen_date country population
2010 US 50
2010 Ger 10
2010 UK 5
2011 US 55
2011 Ger 15
2011 UK 10
2011 China 100
我想什么做的是有像下面的表格,
2010 2011
US 50 55
Ger 10 15
UK 5 10
China NULL 100
所以,你会发现,有在2010年是中国没有数据,但我还是会喜欢这个包括在上面的表中,但是作为NULL。
更新
通过一点线索和错误的查询低于现在的作品
select *
from
(
select country, cen_date , population
from Country_Pop
) org
pivot
(
max(population)
for cen_date in ([2009-01-01], [2010-01-01], [2011-01-01])
) piv;
不能完全确定这一工作,虽然这是为什么。我想我必须首先创建一个不同国家的列表,但是猜测它必须与max和pivot函数有关?
是的,谢谢我发布的查询给了我一直在寻找的结果 – mHelpMe 2015-03-25 17:18:20