parent_ID NAME StringValue
1 PayStage 1
1 PayMoney 11111
1 PayTime 2015-11-25 00:00
2 PayStage 2
2 PayMoney 22222
2 PayTime 2016-11-25 00:00
我现在有这样一个表,如何查询出下面这样的结果
Paystage PayMoney PayTime
1 11111 2015-11-25 00:00
2 22222 2016-11-25 00:00
DECLARE @T TABLE(parent_ID INT,NAME VARCHAR(10) ,StringValue VARCHAR(50)); INSERT INTO @T (parent_ID,NAME,StringValue) VALUES (1,'PayStage','1'), (1,'PayMoney','11111'), (1,'PayTime ','2015-11-25 00:00'), (2,'PayStage','2'), (2,'PayMoney','22222'), (2,'PayTime ','2016-11-25 00:00') SELECT parent_ID,[PayStage],[PayMoney],[PayTime] FROM @T PIVOT (max(stringvalue) FOR NAME IN ([PayStage],[PayMoney],[PayTime])) pt /* 1 1 11111 2015-11-25 00:00 2 2 22222 2016-11-25 00:00 */