在使用SQL数据库的时候,进行查询后,如何对查询结果进行行转列操作呢?下面就将为您介绍执行该操作要用到的SQL语句,供您参考,希望对您学习SQL语句有所帮助 。
测试数据:
code price
MCU0-3 15
MCU0-3 20
MCU0-3 22
MCU3-15 17
MCU3-15 16
MCU3-15 -10
MCU3-15 50
MCU3-27 99
MCU3-27 96
MCU3-27 54
MCU3-27 14
MCU3-27 46
MCU3-27 86
结果:
MCU0-3 MCU3-15 MCU3-27
15 17 99
20 16 96
22 -10 54
null 50 14
null null 46
null null 86
SQL语句:
drop table [dbo].[RowToCol];
CREATE TABLE [dbo].[RowToCol]
(
[code] varchar(50) NULL,
[price] varchar(50) NULL,
)
ON [PRIMARY];
select * from [RowToCol];
insert into [dbo].[RowToCol] ([code],[price]) values (MCU0-3,15);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU0-3,20);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU0-3,22);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-15,17);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-15,16);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-15,-10);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-15,50);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-27,99);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-27,96);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-27,54);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-27,14);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-27,46);
insert into [dbo].[RowToCol] ([code],[price]) values (MCU3-27,86);
drop table #T1;
drop table #T2;
drop table #T3;
select ID=IDENTITY(INT,1,1),[price] into #T1 from [RowToCol] where [code]=MCU0-3;
select ID=IDENTITY(INT,1,1),[price] into #T2 from [RowToCol] where [code]=MCU3-15;
select ID=IDENTITY(INT,1,1),[price] into #T3 from [RowToCol] where [code]=MCU3-27;
select t1.price as MCU0-3, t2.price as MCU3-15,t3.price as MCU3-27 from #T1 t1 FULL OUTER JOIN #T2 t2 on t1.id = t2.id FULL OUTER JOIN #T3 t3 on t2.id = t3.id