【问题标题】:Interchange of rows to column in sqlserver 2008 [duplicate]sql server 2008中行到列的交换[重复]
【发布时间】:2016-01-05 16:32:12
【问题描述】:

如何交换行到列, 我有一个类似的输出

 employeeName   payHead  amount

Samam          Basic    20000.000000 
Samam          Test1    11.000000
Samam          Test2    22.000000   
Ravi kumar     Test1    55.000000
Ravi kumar     Test2    66.000000
Ravi kumar     Basic    3000.000000

我需要像

这样的输出
employeeName   Basic             Test1         Test2   

 Samam          20000.000000      11.000000    22.000000 
 Ravi kumar     3000.000000       55.000000    66.000000

【问题讨论】:

标签: sql sql-server sql-server-2008


【解决方案1】:

简单的PIVOT查询:

DECLARE @Test TABLE (employeeName  nvarchar(max),
                     payHead nvarchar(max),
                     amount float);

INSERT INTO @Test
VALUES
('Samam',          'Basic',    20000.000000),
('Samam',          'Test1',    11.000000),
('Samam',          'Test2',    22.000000),   
('Ravi kumar',     'Test1',    55.000000),
('Ravi kumar',     'Test2',    66.000000),
('Ravi kumar',     'Basic',    3000.000000);

SELECT *
FROM @Test t
PIVOT
(
    MAX(amount)
    FOR payHead IN (Basic,Test1,Test2)
) as p
ORDER BY Basic;

【讨论】:

    猜你喜欢
    • 2012-12-18
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    相关资源
    最近更新 更多