FoxPro의 dbf 파일에 60,000 개의 레코드가 있습니다. 나는 그것을 20,000 개의 레코드 (20000 * 3 = 60,000)로 나누고 싶다.FoxPro 레코드를 분할하는 방법?
어떻게하면됩니까?
저는 FoxPro를 처음 사용합니다. Visual FoxPro 5.0을 사용하고 있습니다.
미리 감사드립니다.
직접 첫 번째 테이블에서 선택할 수 있습니다FoxPro의 dbf 파일에 60,000 개의 레코드가 있습니다. 나는 그것을 20,000 개의 레코드 (20000 * 3 = 60,000)로 나누고 싶다.FoxPro 레코드를 분할하는 방법?
어떻게하면됩니까?
저는 FoxPro를 처음 사용합니다. Visual FoxPro 5.0을 사용하고 있습니다.
미리 감사드립니다.
직접 첫 번째 테이블에서 선택할 수 있습니다당신은 SKIP
명령을 실행해야합니다. 당신이 기록적인 숫자에 따라 분할 원한다면
USE MyTable
GO TOP
COPY NEXT 20000 TO NewTable1
SKIP 1
COPY NEXT 20000 TO NewTable2
SKIP 1
COPY NEXT 20000 TO NewTable3
:
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
: 당신이 더 많은 것을 원하는 경우에 제어하지만, 또는 데이터를 조작 할 필요가
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 코드, 뭔가를 사용할 수 있습니다
VFP를 사용한 이후로 시간이 지났으며 여기에는 구문 분석 오류에 대한 사과가 있습니다.
use in 0 YourTable
select YourTable
go top
copy to NewTable1 next 20000
copy to NewTable2 next 20000
copy to NewTable3 next 20000
레코드 분리 방법에 신경 쓰지 않으면 Todd의 제안이 작동합니다. 내용에 따라 분류하고 싶다면 스튜어트의 첫 번째 제안과 같은 일을하고 싶을 것입니다. 정확한 답변은 레코드의 ID가 1에서 6 만까지 순서대로 실행되는 경우에만 작동합니다.
여기 궁극의 목표는 무엇입니까? 왜 테이블을 나눕니 까? 다음 레코드에서 시작되어 있는지 확인하기 위해 COPY
명령을 사용할 때
다말은
,이 시도 :
SELECT * FROM table INTO TABLE tbl1 WHERE RECNO() <= 20000
SELECT * FROM table INTO TABLE tbl2 WHERE BETWEEN(RECNO(), 20001, 40000)
SELECT * FROM table INTO TABLE tbl3 WHERE RECNO() > 40000
당신은 앞으로 1 개 레코드를 레코드 포인터를 이동 명령에 COPY 사이에 SKIP 1 명령을 실행해야합니다. 답으로 NewTable1의 마지막 레코드가 NewTable2의 첫 번째 레코드와 동일하게됩니다. – DaveB