SQL选择/查看:我可以通过表的“重组”显示数据吗?

时间:2013-06-19 08:30:24

标签: sql sql-server-2008 select ssms

我真的不认为在SQL查询中这样做是可能的,但我试图提取一些数据,我想“重新组织”表的结构(将行数据作为列)。

很难解释所以有一个例子,这是我的表:

MONTH | CODE | VALUE
Jan   | ABC  | 100
Jan   | DEF  | 200
Jan   | GHI  | 200
Feb   | ABC  | 400
Feb   | DEF  | 250
Mar   | GHI  | 450

这就是我想要的:

CODE  | Jan  | Feb  | Mar
ABC   | 100  | 400  | null
DEF   | 200  | 250  | null
GHI   | 200  | null | 450

是否可以使用SQL查询显示这样的数据?

注意:我正在使用SQL Server 2008(使用SQL Management Studio)

1 个答案:

答案 0 :(得分:2)

试试这段代码。

SELECT Code,
MAX(CASE WHEN MONTH='Jan' THEN VALUE ELSE NULL END) AS JAN
MAX(CASE WHEN MONTH='Feb' THEN VALUE ELSE NULL END) AS Feb
MAX(CASE WHEN MONTH='Mar' THEN VALUE ELSE NULL END) AS Mar
FROM table_name
GROUP BY Code
ORDER BY Code