在Microsoft SQL Server 2008中,将一张表的某列字段的值转换为列名称

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Microsoft SQL Server 2008中,将一张表的某列字段的值转换为列名称相关的知识,希望对你有一定的参考价值。

create table test
(部门 varchar(10),
客户 varchar(10),
费用名称 varchar(10),
金额 int)
 
insert into test values (‘A‘,‘a‘,‘手机费‘,10)
insert into test values (‘A‘,‘a‘,‘办公费‘,11)
insert into test values (‘A‘,‘a‘,‘公交费‘,9)
insert into test values (‘A‘,‘b‘,‘手机费‘,10)
insert into test values (‘A‘,‘b‘,‘办公费‘,10)
insert into test values (‘A‘,‘c‘,‘公交费‘,10)
insert into test values (‘B‘,‘d‘,‘手机费‘,10)
insert into test values (‘B‘,‘d‘,‘办公费‘,11)
insert into test values (‘B‘,‘e‘,‘公交费‘,9)
insert into test values (‘B‘,‘f‘,‘手机费‘,10)
insert into test values (‘B‘,‘f‘,‘办公费‘,10)
insert into test values (‘B‘,‘f‘,‘公交费‘,10) 

select * from test


 

declare @sql varchar(4000)
set @sql = ‘select [部门],[客户]‘

select @sql = @sql + ‘,sum(isnull(case [费用名称] when ‘‘‘+[费用名称]+‘‘‘ then [金额] end,0)) as 
[‘+[费用名称]+‘]‘
from (select distinct [费用名称] from [test]) as a
select @sql = @sql+‘ from [test] group by [部门],[客户]‘


exec(@sql) 

以上是关于在Microsoft SQL Server 2008中,将一张表的某列字段的值转换为列名称的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝

sql server游标读取excel文件数据,更新到指定表中

标题: Microsoft SQL Server Management Studio

在Microsoft SQL Server中选择随机行

ubuntu下连microsoft sql server解决方案

如何在 Microsoft SQL Server 中“取消堆叠”SQL 中的数据