MSSQL行车列规则
行转列,是SQL中经常会遇到的一个问题,并且分为静态转换和动态转换,所谓静态转换即在转换的行数已知或固定;动态转换则为转换的行数不固定。 转换的方法一般采用case when语句或pivot(MSSQL 2005及以上版本)来实现。 首先来看静态转换:先准备一下测试数据,使用如下SQL语句直接生成: If Exists (Select * From sysobjects Where id = OBJECT_ID('Sales') and OBJECTPROPERTY(id, 'IsUserTable') = 1) Begin Drop Table Sales End Create Table Sales( Name nvarchar(10), Product nvarchar(12), Quantity int) Insert Into Sales(Name,Product,Quantity) Values('Leo','Apple',300), ('Leo','Orange',23), ('Amy','Apple',432), ('Amy','Banana',45), ('Leo','Banana',74), ('Tomy','Apple',57), ('Tomy','Orange',92), ('Tim','Apple',76), ('Tim','Banana',45), (