求助数据转换方法

老七 2008-04-29 02:26:22
有如下表:
原数据表如下:
字段一 字段二 字段三
a1 a2 a3
b1 b2 b3
c1 c2 c3
d1 d2 d3
希望转换为如下数据表:
a1
a2
a3
b1
b2
b3
c1
c2
c3
d1
d2
d3
即每行一个字段值,顺序存放字段一,字段二,字段三,......
再接着存放下一条记录.

...全文
128 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
老七 2008-04-29
  • 打赏
  • 举报
回复
apple_8180: 谢谢.
刚做测试,基本行,如果程序应用过程有问题再求帮助.结帖.
WWWWA 2008-04-29
  • 打赏
  • 举报
回复
生成TXT文件应该是最简单的,只要不超过2G,VFP应该可以操作
十豆三 2008-04-29
  • 打赏
  • 举报
回复
你说的扩展是指字段数不,还是指什么?
WWWWA 2008-04-29
  • 打赏
  • 举报
回复
Use tt
Copy To TEMP.TXT Delimited With Tab
Strtofile(Strtran(Strtran(Filetostr("TEMP.TXT"),'"',''),Chr(9),Chr(13)+Chr(10)),"TEMP.TXT")
Create Table 目标表 (字段A C(20))
Append From temp.txt Delimited With Tab
十豆三 2008-04-29
  • 打赏
  • 举报
回复
如果只想文本:
*--假设字段全为字符型
Use 原表名
Copy To TEMP.TXT Delimited With Tab
Strtofile(strtran(Strtran(Filetostr("TEMP.TXT"),Chr(9),Chr(13)+Chr(10)),["],[]),"TEMP.TXT")
老七 2008-04-29
  • 打赏
  • 举报
回复
我需要满足扩展要求
十豆三 2008-04-29
  • 打赏
  • 举报
回复
*--假设字段全为字符型
Use 原表名
Copy To TEMP.TXT Delimited With Tab
Strtofile(Strtran(Filetostr("TEMP.TXT"),Chr(9),Chr(13)+Chr(10)),"TEMP.TXT")
Create Table 目标表 (字段A C(20))
Append From temp.txt Delimited With Tab
都市夜猫 2008-04-29
  • 打赏
  • 举报
回复
还是一定要用 sql 语句来实现?

vfp 帮助中有这样的描述:Maximum # of characters per command line is 8192.
就算用 sql 来实现,语句会有这么长吗?

WWWWA 2008-04-29
  • 打赏
  • 举报
回复
use tt
scan
for i=1 to 3
j=str(i,1)
ff=字段&j
insert into tt1(f1) values(ff)
next
endscan

or

CLOSE DATABASES

USE 原表名 IN 0 ALIAS srctbl
CREATE TABLE newtbl ( fxxx C(10) )

SELECT srctbl
SCAN ALL
FOR m.ii = 1 TO FCOUNT()
m.fxxx = EVALUATE( FIELD( m.ii ))
INSERT INTO newtbl ( fxxx ) VALUES ( m.fxxx )
ENDFOR
ENDSCAN

SELECT newtbl
BROWSE

第二个代码适应性强一些
都市夜猫 2008-04-29
  • 打赏
  • 举报
回复
不懂,3 楼或 12 楼的代码不能满足你的要求?
老七 2008-04-29
  • 打赏
  • 举报
回复
程序怎么写,求的就是相关代码
WWWWA 2008-04-29
  • 打赏
  • 举报
回复
如果字段太多,用程序的方法好些
老七 2008-04-29
  • 打赏
  • 举报
回复
求盼高手
老七 2008-04-29
  • 打赏
  • 举报
回复
热心参与者肯定给分,诚表谢意
都市夜猫 2008-04-29
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 WWWWA 的回复:]
不是哦,集思广益嘛
[/Quote]

思路上与你 3 楼的答案是一样的,只不过可以适应任意字段数而已。

老七 2008-04-29
  • 打赏
  • 举报
回复
用N个变量生成类似
SELECT 字段1,RECNO() from 表 union SELECT 字段2,RECNO() from 表
union
SELECT 字段n,RECNO() from 表

的SQL语句,分次运行

可以参考
WWWWA 2008-04-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 dkfdtf 的回复:]

喔,原来已有类似答案,算我画蛇添足。

[/Quote]
不是哦,集思广益嘛
老七 2008-04-29
  • 打赏
  • 举报
回复
实际运用是将金蝶的销售,购进,库存表的相关数据转换为xml文件.
都市夜猫 2008-04-29
  • 打赏
  • 举报
回复

用 text ... endtext 来生成 sql 的命令,长度限制应该在 8k 左右。

WWWWA 2008-04-29
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 whqrzwh 的回复:]
实际运用远远超过254
[/Quote]
那就用上述程序,
OR
用N个变量生成类似
SELECT 字段1,RECNO() from 表 union SELECT 字段2,RECNO() from 表
union
SELECT 字段n,RECNO() from 表

的SQL语句,分次运行
加载更多回复(17)

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧