【发布时间】:2015-10-20 10:56:29
【问题描述】:
sql表如下,
Name Salary NoticePeriod CTC
Jack 1520 15 123
Bruce 1423 35 165
它包含大约 1000 行。
我需要对这个表做一个转置,这样预期的输出是
Fields Jack Bruce Mike ..... Sam
Salary 1520 1423 235 .. 561
NoticePeriod 15 35 23 253
CTC 123 165 45 ... 125
我尝试在 Sql Server 2008 中使用 Pivot 和 Unpivot 函数。但是由于 Name 记录很大,所以 Pivot 查询没有帮助。
我的sql尝试如下,
SELECT *
FROM (
SELECT NAME,
Salary,
NoticePeriod,
CTC
FROM CTCTABLE WITH (NOLOCK)
) AS queryTable
UNPIVOT(Value FOR NAME IN (NAME, Salary, NoticePeriod, CTC)) AS unpv
PIvot(max(Value) FOR NAME IN (Salary, NoticePeriod, CTC)) pv
【问题讨论】:
-
分享你到目前为止所尝试的,如果有的话。
标签: sql sql-server database sql-server-2008 pivot