首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何拆分FoxPro记录?

如何拆分FoxPro记录?
EN

Stack Overflow用户
提问于 2011-03-24 20:18:43
回答 5查看 4.1K关注 0票数 1

我在FoxPro的dbf文件中有60,000条记录。我想将它拆分为每个20,000条记录(20000 *3= 60,000)。

我如何才能做到这一点?

我是FoxPro的新手。我使用的是Visual FoxPro 5.0。

提前谢谢。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-26 01:09:59

在使用COPY命令时,必须发出SKIP命令,以确保从下一条记录开始。

代码语言:javascript
复制
USE MyTable
GO TOP
COPY NEXT 20000 TO NewTable1
SKIP 1
COPY NEXT 20000 TO NewTable2
SKIP 1
COPY NEXT 20000 TO NewTable3
票数 3
EN

Stack Overflow用户

发布于 2011-03-25 04:06:13

如果你不关心记录是如何拆分的,那么托德的建议是可行的。如果您想要根据它们的内容对它们进行划分,您将需要执行类似Stuart的第一个建议的操作,尽管他的确切答案只有在记录的ID从1到60,000的顺序运行时才有效。

这里的最终目标是什么?为什么要拆分这个表呢?

添马舰

票数 1
EN

Stack Overflow用户

发布于 2011-03-24 21:52:13

您可以直接从第一个表中选择:

代码语言:javascript
复制
SELECT * from MyBigTable INTO TABLE SmallTable1 WHERE ID < 20000
SELECT * from MyBigTable INTO TABLE SmallTable2 WHERE ID BETWEEN (20000, 39999)
SELECT * from MyBigTable INTO TABLE SmallTable3 WHERE ID > 39999

但是,如果您想要更好的控制,或者需要操作数据,可以使用xbase代码,如下所示:

代码语言:javascript
复制
SELECT MyBigTable

scan
    scatter name oRecord memo

    if oRecord.Id < 20000
        select SmallTable1
        append blank
        gather name oRecord memo
    else if oRecord.Id < 40000
        select SmallTable2
        append blank
        gather name oRecord memo
    else 
        select SmallTable3
        append blank
        gather name oRecord memo
endscan 

我使用VFP已经有一段时间了,我这里没有它,所以对于任何语法错误,我深表歉意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5418967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档