求行转列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
[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
...全文
相关推荐
Oracle单条SQL语句可以做什么.pdf
### Oracle单条SQL语句的强大功能#### 一、引言在数据库操作领域,SQL作为最常用的查询语言之一,在处理复杂数据时展现出了极大的灵活性和高效性。
Mysql 行转列,列转行 SQL语句和示例表结构SQL
本文将深入探讨这两种转换方法,并提供具体的 SQL 语句示例,以及创建示例表结构的 SQL 代码。### 1. 行转列(Pivot)行转列是将数据表中的某些行转换为列,以便更直观地呈现数据。
SQL中如何实现行转列,列转行的操作
**行转列**: 行转列通常是为了将具有多个值的列转换为单独的列。在SQL Server中,一种常见的方式是使用`CASE WHEN`语句。
sql语句实现行转列的3种方法实例
存储过程行转列对于更复杂的需求,可以创建一个存储过程来动态生成行转列的SQL语句。存储过程允许我们传入参数,如表名、列名等,使得行转列操作更具灵活性。
Sql语句实现表的行列转换,行转列,列转行
### SQL语句实现表的行列转换,行转列,列转行在处理数据库时,我们经常需要对数据进行各种变换以适应不同的分析需求。


应用实例
