PIVOT a选择查询

时间:2016-02-16 06:52:08

标签: sql-server sql-server-2008 sql-server-2012 crystal-reports-2008

我是SQL服务器编码的新手,我需要一些帮助。

我有一个SELECT语句,其中包含三列,即更改的字段名称及其上一个和新值

FieldName   OldValue    NewValue
Age         21          22
Age         76          54
Color       Red         Blue

我正在尝试PIVOT选择类似的内容:

OldValueName   NewValueName  OldValueAge  NewValueAge  OldValueColor  NewValueColor etc.

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以通过以下方式使用PIVOT。

DECLARE @tbl TABLE (
    FieldName VARCHAR(50),
    OldValue VARCHAR(50),
    Newvalue Varchar(50)
)

INSERT INTO @tbl ( FieldName, OldValue, NewVALUE )
SELECT 'AGE', '21','22'
UNION
SELECT 'AGE', '76','54'
UNION
SELECT 'color', 'red','blue'

SELECT * FROM @tbl

SELECT * FROM 
(
    SELECT FieldName, OldValue, NewValue  FROM @tbl
) AS S
PIVOT
(
    max(OldValue) FOR s.FieldName in ([AGE], [color])
) AS Pvt