在Microsoft SQL Server 2008中,将一张表的某列的值转换为列名称
2016-08-09 11:03
337 查看
步骤一:创建测试表
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)
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在64位win7上安装后服务器名称为空的解决办法
- microsoft sql server 2008在64位win7上安装后服务器名称为空的解决办法 转载
- microsoft sql server 2008在64位win7上安装后服务器名称为空以及登录错误:无法连接到(local)的解决办法
- Microsoft SQL Server 2008 CTP,2008 年 2 月中文版官方下载
- 安装Microsoft SQL Server 2008过程中的十九个经典画面
- Microsoft SQL Server 2008 安装图集
- Microsoft SQL Server 2008 基本安装说明
- Microsoft SQL Server 2008 CTP 4 下载
- Microsoft SQL Server 2008 正式发布
- Microsoft SQL Server 2008 Feature Pack,2008 年 10 月
- Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件的解决办法
- Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件的解决办法
- Microsoft SQL Server 2008已可下载试用CTP版
- Microsoft 数据库三版本共存:SQL Server 2000(SP4) + SQL Server 2005(SP2) + SQL Server 2008
- Microsoft SQL Server 2008试用及CTP版下载
- Katmai定名"Microsoft SQL Server 2008"
- 全面解读Microsoft SQL Server 2000 中的数据转换服务 (DTS)
- Microsoft SQL Server 7.0数据库升级转换问题
- Microsoft Sql Server 中利用Convert 函数转换Datetime 到 String
- Microsoft SQL Server 2008 Feature Pack,2008 年 10 月