SQL Server行转列的方法解析
话不多说,请看代码:
/* SELECT <非透视的列>, [第一个透视的列] AS <列名称>, [第二个透视的列] AS <列名称>, ... [最后一个透视的列] AS <列名称>, FROM (<生成数据的 SELECT 查询>) AS <源查询的别名> PIVOT ( <聚合函数>(<要聚合的列>) FOR [<包含要成为列标题的值的列>] IN ( [第一个透视的列], [第二个透视的列], ... [最后一个透视的列]) ) AS <透视表的别名> <可选的 ORDER BY 子句>; */ declare @tb table ( cid int ,cname varchar(10) ) insert into @tb select 1,'aa' union all select 2,'bb' select * from @tb declare @idaa int ,@idbb int select aa,bb from( select cid,cname from @tb )as tt pivot( max(cid) for cname in([aa],bb) )piv