您现在的位置是: IT外包 ->技术支持 ->办公技术交流 ->Excel ->
 
本文关键字: SQL
SQL表按条件批量导出多个Excel文件
作者: 不详 | 发布时间: 2011-08-30 08:43 | 信息类别: Excel | 访问人次:
评论 推荐 打印 编辑 】 【 关闭
  

  
SQL Server表中数据按条件批量导出为多个Excel文件是本文我们主要要介绍的内容,在一次SQL Server数据库的操作中,需要将某个有数十万行数据的表按类别导出为xls文件,每个类别一个xls。将数据表中的数据导出并保存为xls简单,用SSIS或者查询出来之后另存为都可以。但是,这个表中的分类有数百个,如果一个个用SSIS或者查询另存为的话,工作量巨大。前思后想,想到了用while循环查询,并用bcp导出的方法。

下面是相关代码:

以下是代码片段:

--声明需要的变量

declare @sql varchar(600),@TypeID int

--确认第一个分类的ID

select @TypeID=min(TypeID) from t_TestTable

--当存在满足分类ID的记录时进行处理

while exists(select 1 from t_TestTable where TypeID=@TypeID)

begin

--拼凑需要执行的语句

set @sql='bcp "select * from (select'+'''列名1'''+' AS 列名1,'+'''列名2'''+' AS 列名2,'+'''列名3'''+' AS 列名3'--在xls文件中显示列名

set @sql=@sql+' union all select 列名1,列名2,列名3 from t_TestTable where TypeID='+cast(@TypeID as varchar(8))+')a" queryout "F:\datafile\TypeData'+cast(@TypeID as varchar(8))+'.xls" -c -q -S"ServerName" -U"sa" -P"SAPASSWORD" -d"DBName"'--查询满足条件的记录并保存到xls文件中

--使用xp_cmdshell系统存储过程执行拼凑好的语句(需要使用高级选项开关预先开启cmdshell组件)

exec master..xp_cmdshell @sql

--获得下一个分类的ID(分类ID是不连续的)

select @TypeID=isnull(min(TypeID),@TypeID+1) from t_TestTable where TypeID>=@TypeID+1

end




以上就是SQL Server表中数据按条件批量导出为多个Excel文件的实现方法,本文就介绍到这里了,希望本次的介绍能够对您有所收获!
评论 推荐 打印 编辑 】 【 关闭
『相关链接』
序号
标题 发布日期
1
2011-09-22 09:20:35
2
2011-08-24 16:30:36
3
2011-08-24 16:01:36
4
2011-04-19 12:15:53
5
2011-03-21 17:17:45
6
2011-02-15 09:14:34
7
2011-01-18 09:43:35
8
2011-01-18 09:42:25
9
2011-01-18 09:41:06
10
2011-01-18 09:40:00
    查看所有相关的信息...
【郑重声明】【上海IT外包服务网】 刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何投资或其他建议。转载需经作者本人同意并注明出处。本网站有部分文章是由网友自由上传。对于此类文章本站仅提供交流平台,不为其版权负责。如果您发现本网站上有侵犯您的知识产权的文章,请发信至 或直接电话联系: 021-58878998
请您留言
『发表评论』
匿名发表 会员ID: 密码:

上海蝶应信息科技有限公司
上海市 +0086-21-58878998 11394019
dieying@541help.com +0086-21-58878998HappyFreeAngel@hotmail.com
Copyright@2012 IT-WAIBAO.COM Inc.沪ICP备05039378号 版权所有2005-2012管理员登陆