求行转列SQL语句
CREATE TABLE [dbo].[T_Tb](
[AutoID] [int] IDENTITY(1,1) NOT NULL,
[Shipping_Order] [char](30) Not NULL,
[Order_Number] [varchar](30) ,
[Do_No] [char](15) ,
[Item_Code] [char](20) Null,
[Pallet] [int] NULL,
[Tot_Ctn] [int] NULL,
[Delivery_Address] [varchar](500) Null
) ON [PRIMARY]
Insert [dbo].[T_Tb] (Shipping_Order, Order_Number, Do_No, Item_Code, Pallet, Tot_Ctn, Delivery_Address)
Select 'SC101','14885','TC1001','SC35003800',1,10,'上海' Union
Select 'SC105','10899','TK1008','SC35003805',1,13,'北京' Union
Select 'SC231','19786','TC1091','SC35003800',1,16,'湖北' Union
Select 'SC351','13875','TC1661','SC35003800',1,62,'上海' Union
Select 'SC510','19988','TC1781','SC35003800',1,40,'海南'
想要实现的结果如下:
Shipping_Order1 Order_Number1 Do_No1 Item_Code1 Pallet1 Tot_Ctn1 Delivery_Address1 Shipping_Order2 Order_Number2 Do_No2 Item_Code2 Pallet2 Tot_Ctn2 Delivery_Address2
SC101 14885 TC1001 SC35003800 1 10 上海 SC105 10899 TK1008 SC35003805 1 13 北京
SC231 19786 TC1091 SC35003800 1 16 湖北 SC351 13875 TC1661 SC35003800 1 62 上海
SC510 19988 TC1781 SC35003800 1 40 海南
即T_Tb表的AutoID与2的余数为1时,相应的列转换为对应列名+1;如果余数为0时,列名转换为相应的列名+2