0

我是新来的SQL服务器编码,我需要一些帮助。枢轴选择查询

我有一个具有三列的SELECT声明,即改变字段名和其以前的和新的价值观

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

我想这PIVOT选择成类似:

OldValueName NewValueName OldValueAge NewValueAge OldValueColor NewValueColor etc. 

你能帮我解决吗?

+0

提供此样本数据 –

+0

所以如果你有100行从SELECT语句造成的,你想它枢成300列×1个的结果的结果的例子吗? – Squirrel

+0

在水晶报告中使用交叉标签 – Siva

回答

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