标题 | 跪求sql server2012行转列方案 |
内容 | 下面为表创建代码: create table [dbo].[productauditrecord]([parid] [nchar](12) not null,[moid] [nchar](12) not null,[lotsn] [nvarchar](50) not null,[cosmeticinspection] [nchar](12) not null,[functionaltest] [nchar](12) not null,[unumber] [nchar](50) null,[leadwire] [nchar](50) null,[resourceid] [nchar](12) not null,[userid] [nchar](12) not null,[remark] [nvarchar](100) null,[creatdate] [datetime] not null,[productid] [nchar](12) not null,[nextid] [int] not null, constraint [pk_productauditrecord] primary key clustered ([parid] asc)with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off, allow_row_locks = on, allow_page_locks = on) on [primary]) on [primary]goalter table [dbo].[productauditrecord] add constraint [df_productauditrecord_parid] default (substring(convert([char](36), newid(),(0)),(1),(12))) for [parid]goalter table [dbo]. [productauditrecord] add constraint [df_productauditrecord_nextid] default ((0)) for [nextid]go 下面为自己测试数据得到的结果:上面为原始数据,下面为转换后的数据:转换代码 测试表代码:create table [dbo].[test]( [月份] [varchar](4) null, [工资] [int] null, [福利] [int] null, [奖金] [int] null ) on [primary] 1:月份 工资 福利 奖金 1月 100 200 300 2月 110 210 310 3月 120 220 320 4月 130 230 330 2:考核月份 1月 2月 3月 4月 福利 200 210 220 230 工资 100 110 120 130 奖金 300 310 320 330 select * from ( select 考核月份,月份,金额 from (select 月份, 工资, 福利, 奖金 from test) p unpivot (金额 for 考核月份 in (工资, 福利, 奖金))as unpvt ) t pivot (max(金额) for 月份 in ([1月],[2月],[3月],[4月]))as pt |
随便看 |
|
在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。