我使用MS sql SERVER 2008和我有以下数据:
select * from account; | PERIOD | ACCOUNT | VALUE | ---------------------------- | 2000 | Asset | 205 | | 2000 | Equity | 365 | | 2000 | Profit | 524 | | 2001 | Asset | 142 | | 2001 | Equity | 214 | | 2001 | Profit | 421 | | 2002 | Asset | 421 | | 2002 | Equity | 163 | | 2002 | Profit | 325 |
我想让他们成为这样:
| ACCOUNT | 2000 | 2001 | 2002 | -------------------------------- | Asset | 205 | 142 | 421 | | Equity | 365 | 214 | 163 | | Profit | 524 | 421 | 325 |
SELECT * FROM ( SELECT [Period],[Account],[Value] FROM TableName ) AS source PIVOT ( MAX([Value]) FOR [Period] IN ([2000],[2001],[2002]) ) as pvt
其他方式,
SELECT ACCOUNT,MAX(CASE WHEN Period = '2000' THEN Value ELSE NULL END) [2000],MAX(CASE WHEN Period = '2001' THEN Value ELSE NULL END) [2001],MAX(CASE WHEN Period = '2002' THEN Value ELSE NULL END) [2002] FROM tableName GROUP BY Account
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。