0

我真的不认为在 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)

4

1 回答 1

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
于 2013-06-19T08:35:26.620 回答