之前写过一篇文章是专门说明对于固定列如何进行行列转换,也就是说最终期望的结果集的列是固定,例如期望的结果是各个城市一年之中每个月的经济量,这个很好做,按照我之前写的文章操作即可。现在有种情况就是期望的结果列不固定,例如求某个月各个城市每天的经济量,由于月有的是30天有的是31天,这样就导致无法确定列,用之前的方法显然搞不定。那么这个时候我们就需要采用动态SQL去实时的拼接列名。
创建表语句
USE [master]
GO
/****** Object: Table [dbo].[Table_4] Script Date: 08/09/2013 16:05:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table_4](
[time] [datetime] NULL,
[City] [varchar](10) NULL,
[count] [int] NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
插入测试数据
insert into [master].[dbo].[Table_4] ([time],[City],[count]) values( '2013-07-01 00:00:00.000','北京市',14);
insert into [master].[dbo].[Table_4] ([time],[City],[count]) values( '2013-07-01