对查询结果进行行转列操作要用到的SQL语句


  本文标签:SQL 语句 查询

  在使用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