测试环境如下:
FMOBILE PHONETYPE FSYNCFLAG FNEW_GROUPID
7734234059 1 2 1773004375
7734234148 1 2 1773004375
7734234142 1 2 1773004375
7738225886 0 2 1773004377
7732932609 0 2 1773004379
7737188864 0 2 1773004381
7737181205 0 2 1773004381
7737237793 1 2 1773004393
7738188887 1 2 1773004395
7738182863 1 2 1773004395根据FNEW_GROUPID判断,将相同FNEW_GROUPID的数据取出来,导出为按照FNEW_GROUPID字段值命名的TXT或XLS的文档,能实现么?
比如上面最终将导出6个文档,其中1773004375.txt,文件内容如下
7734234059, 1, 2, 1773004375
7734234148, 1, 2, 1773004375
7734234142, 1, 2, 1773004375
各个字段以“,”分隔,不知道这样说明白了么?请高手帮忙,谢谢!
FMOBILE PHONETYPE FSYNCFLAG FNEW_GROUPID
7734234059 1 2 1773004375
7734234148 1 2 1773004375
7734234142 1 2 1773004375
7738225886 0 2 1773004377
7732932609 0 2 1773004379
7737188864 0 2 1773004381
7737181205 0 2 1773004381
7737237793 1 2 1773004393
7738188887 1 2 1773004395
7738182863 1 2 1773004395根据FNEW_GROUPID判断,将相同FNEW_GROUPID的数据取出来,导出为按照FNEW_GROUPID字段值命名的TXT或XLS的文档,能实现么?
比如上面最终将导出6个文档,其中1773004375.txt,文件内容如下
7734234059, 1, 2, 1773004375
7734234148, 1, 2, 1773004375
7734234142, 1, 2, 1773004375
各个字段以“,”分隔,不知道这样说明白了么?请高手帮忙,谢谢!
解决方案 »
- SQL2005导出的脚本如何在SQL2000下运行?
- SQL SERVER數據庫.log文件超大的問題
- 这样给过程的变量赋值可以吗?
- Access数据库查询过于缓慢,就高手解答~~~~~~~~~
- 初学者请教:我想要某个表里的所有字段名及其数据类型等信息,用Sql语句怎么写???
- 请问怎样用SQL脚本把表中重复的数据删掉?
- 内网组建SERVER2005服务器的问题(关于端口映射)
- 小case大问题
- 超难的SQL更新语句,请叫高手!
- java 连接sqlserver 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused:
- SQL2005的CD2~谁有啊,郁闷死了
- 两台服务器里两个数据库两表数据同步,如何做?
create table Test(FMOBILE bigint,PHONETYPE int,FSYNCFLAG int,FNEW_GROUPID bigint)
insert Test
select 7734234059,1,2,1773004375 union all
select 7734234148,1,2,1773004375 union all
select 7734234142,1,2,1773004375 union all
select 7738225886,0,2,1773004377 union all
select 7732932609,0,2,1773004379 union all
select 7737188864,0,2,1773004381 union all
select 7737181205,0,2,1773004381 union all
select 7737237793,1,2,1773004393 union all
select 7738188887,1,2,1773004395 union all
select 7738182863,1,2,1773004395
go--数据BCP成文本文件
declare @FNEW_GROUPID bigint,@Cmd varchar(400)
declare curTest cursor for select FNEW_GROUPID from Test group by FNEW_GROUPID
open curTest
fetch next from curTest into @FNEW_GROUPID
while @@fetch_status=0
begin
--注意修改数据库名称和文件存放位置,这里存放在“D:\”。
set @Cmd='bcp "select * from 数据库名称.dbo.Test where FNEW_GROUPID='+rtrim(@FNEW_GROUPID)+'" queryout "D:\'+rtrim(@FNEW_GROUPID)+'.txt" -c -q -T -t ","'
exec master.dbo.xp_cmdshell @Cmd,no_output
fetch next from curTest into @FNEW_GROUPID
end
close curTest
deallocate curTest
--删除测试
drop table Test
bcp pubs..[tbname] in 你的.txt -U"sa" -P"pwd"; 同时生成格式文件,
举例:
8.0
9
1 SQLCHAR 0 11 "," 1 au_id Chinese_PRC_CI_AS
2 SQLCHAR 0 40 "," 2 au_lname Chinese_PRC_CI_AS
3 SQLCHAR 0 20 "," 3 au_fname Chinese_PRC_CI_AS
4 SQLCHAR 0 12 "," 4 phone Chinese_PRC_CI_AS
5 SQLCHAR 0 40 "," 5 address Chinese_PRC_CI_AS
6 SQLCHAR 0 20 "," 6 city Chinese_PRC_CI_AS
7 SQLCHAR 0 2 "," 7 state Chinese_PRC_CI_AS
8 SQLCHAR 0 5 "," 8 zip Chinese_PRC_CI_AS
9 SQLBIT 0 1 "\r\r\n" 9 contract ""第三列为字段长度,第五列为自段序列号,相当于id,,下一步把你的格式文件三和五列不需要导入的字段都改为0,,这样
再根据这个格式文件就能导入成你需要的表了,,
bcp pubs..[你的表名] in 你的.txt -f"你的格式文件路径" -U"sa" -P"pwd";
ok;
试一下吧