1、完全重复,使用
select  distinct  *  from  tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select  distinct  * into  #TMP from  tablename
drop  table  tablename
select  * into  tablename from  #Tmp
drop  table  #TMP
2、部分字段重复通常要求保留重复记录中的第一条记录,
a.假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
select identity(int,1,1) as ID, *  into #Tmp  from  tableName
select MIN(ID) as ID into  #Tmp2  from #Tmp group  by Name,ID
select  * from  #Tmp  where ID in(select ID from  #tmp2)
b.可以使用select分组语句group by,检索出记录数大于1的那些组进行处理。
...  ...
你的具体情况可以变更一下,以基表和临时表关联子查询,直接delete即可
Foxpro 2.5  for Windows 操作
(本节所述及的命令格式同样适用于 Visual FoxPro )
1  进入 Foxpro  2.5  for  Windows ,建立数据库文件。
★  Foxpro  2.5  for  Windows 有两种工作方式;⑴菜单方式;⑵命令方式。本操作为叙述简便,主要介绍命令方式。如果屏幕未出现命令窗口,可按下列方法进入:单击“ window”——“command”。
(1) 键入 crea <;库文件主名>
(2) 按屏幕提示,建立数据库结构。
(3) 按屏幕提示,输入记录。命令为 append 或 F9 。
(4) 在 brow 命令下,光标移到备注字段处,双击;输入备注字段内容。
2  打开文件: use <;库文件主名>
关闭数据库表:use        关闭所有文件数据:close all      清屏:clear  3  追加记录: append 或 F9
将 px2.dbf 接到 px1.dbf 后: (1) use px1  (2) appe from px2
4  显示记录: list 或 F3    或  display all (分屏显示)
5  打印记录: list to prin  或  type <;文件名> [to print]
6  显示指定字段内容: list <;字段名>
7  指定显示:
(1)list all for 姓名="周敏"
(2)list fiel <;要显示的字段名> for <;条件>
(3)list for 婚否
(4)list for .not. 婚否或 list for ! 婚否
(5)list off  (不显示记录号)
(6)list 姓名 for 出生日期 > ctod ('01/01/60')
(7)list for 工资 > 700 .and. 性别="女"
(8)list for 笔试 < 60 .or. 上机< 60
8  清屏:clear
9  替换(更新)记录内容:
(1) repl all 总分 with 语文+数学+英语
(2) repl all 工资 with 工资+50 for 工资<=300
(3) repl 职称 with "中高" ,何年 with 99 for 姓名="周敏"
10  浏览库记录: brow
11  修改记录:
(1) 全屏幕修改记录:  brow  或 (1) go <;记录号>  (2) brow
(2) 指定字段修改:    brow free <;指定字段名>
(3) 修改第 3 条记录: change 3  或  edit 3
(4) chan for 姓名="周敏"
(5) chan fiel 姓名, a, c, 计 for 姓名="周敏"
12  在第 3 条前插入记录:  (1) go 3      (2) inse befo
在第 3 条后插入记录:  (1) go 3      (2) inse
在第 3 条后插入空记录:  (1) go 3      (2) inse  blank
13  逻辑删除记录: (1) go 3  或 loca for 姓名="周敏"  (2) dele
也可以:  dele all for 出生日期 < ctod ('01/01/52')
恢复逻辑删除的记录: reca all
物理删除记录: pack
14  删除当前库中所有记录: zap
15  修改库结构:  modi stru      增加字段  Ctrl+N    删除字段  Ctrl+U
16  按条件建新库:sort to <;新文件主名> on <;关键字段> for <;条件>
17  递减排序: sort to <;新库主名> on 总分  / D
(注意要打开新库,显示,才能看到排序结果。)
18  记录数统计: coun for <;条件> [to <;内存变量名>]
例: coun for 学区="北团 ".and.语文>=60
19  一般统计:
求和:sum <;字段名> [ to <;内存变量名> ] [ for <;条件> ]
求平均值: aver <;字段名> [ to <;内存变量名> ]
20  使用 calc 计算平均分、最高分、最低分、标准差:
calc  avg(zz),max(zz), min(zz),std(zz)
21  分类汇总:问题设为对各商场风雪衣、皮夹克订货数进行汇总。
⑴打开订货数据库:use  dinghuo
⑵按商品名排序或建立索引文件:index  on  商品名  to  shpmsy
⑶打开索引文件:set  index  to  shpmsy
⑷按商品名对订货数分类汇总,建立分类汇总库:
total  on  商品名  to  shphz  fiel  订货数
select distinct from⑸打开新建的分类汇总库:use  shphz
⑹显示:list  。
21  指针指向顶部:go  top    指针指向底部:go  bott
指针指向第5条记录:go  5  或  5
指针从当前记录往下移动 5 个记录: skip 5
22  指针指向"周敏": loca for 姓名="周敏"
定位后继续往下查:cont
23  建立索引文件: inde on <;索引字段表达式> to <;索引文件名>
例(1)  INDE ON 年龄 TO NL          例(2)  INDE ON 总分 TO ZF
例(3)  INDE ON 单位+STR(年龄,2) TO DW-NL
在Visual FoxPro中一般使用“表设计器”建立索引(主索引、候选索引、普通索引、唯一索引)。在自由表中不能建立“主索引”。
在过程中使用Index建立的索引叫“独立索引”,自然成为“主控索引”。
在“表设计器”中的多个字段上建立索引叫“复合索引”。
24  索引文件的打开和关闭:
开始操作打开索引文件:use <;库文件名> index <;索引文件名>
在过程中打开索引文件:set  index to <;索引文件名>
指定当前索引(指定主控索引):set order to <;索引文件名>    然后  list
关闭索引:close index  或  set index  to
25  索引检索命令: (1) 打开库文件            (2) 建立索引文件
(3) FIND <;检索值>  或  SEEK <;表达式>
26  数据库表文件的关联:
(1) sele 2  (2)  use  pxcgz    (3)  index on  姓名 to xm    (4)  sele 1    (5)  use  pxc
(6) set rela on 姓名 into pxcgz      (7)  brow fiel  姓名,学历,职称,B.工资
27  数据库表文件的连接:
(1) sele 1    (2) use pxc1    (3) sele 2      (4) use pxc2        (5) sele 1
(6) JOIN  WITH B TO PXC3 FOR 姓名=B->姓名
(7) use pxc3          (8) list
28  数据库表的更新
对单个表的更新有多种方法,如用:edit    brow    change  及 repl  命令。当需要用一个数据库表的数据更新另一个数据库中的数据时,可以使用 update 命令,调用非当前表文件数据来修改当前表。(假设“0407工资”)
(1) sele 2  (2)  use  0407工资    (3)  index on  姓名 to axm    (4)  sele 1    (5)  use  职工情况
(6) index on 姓名 to bxm              (7)  update on 姓名 from B replace  工资 with  B->工资
29  编辑修改程序: modi comm <;程序文件主名>
进入程序:    do <;程序文件主名>
进入表单:  do  form <;表单文件主名>            进入查询:  do  form <;表单文件主名>
30  库结构复制: copy stru to <;新库主名> [ fiel <;字段名表> ]
31  库文件改名: rena <;原文件全名> to <;新文件全名>
32  库文件复制:
copy to <;新文件主名> [ fiel <;字段名表> ] [ for <;条件> ]
copy file <;源文件全名> to <;目标文件全名> (源文件不能处于打开状态)
33  复制库文件记录:
copy to <;新文件主名> [<;范围>] [fiel<;字段名表>][for<;条件>][sdf]
( sdf 选项命令执行后形成 txt 文件 )
34  库文件删除: erase <;文件全名> 或  dele  <;路径及文件全名>
35  几个 SQL 语句介绍
sele  xm, gz, from pxc wher gz>=900                    pxc 和 0402 为数据库表名
sele * from pxc wher xm="张萍"                * 表示所有字段
sele  xm AS  教工姓名,biye AS 毕业学校及专业  from  pxc
sele sum(gz) from pxc wher xb=' 女'
sele coun(zf) from  0402 wher zf>=665.5
sele max(yw),min(yw),avg(yw),std(yw) from 0402
(1) use  0402            (2) max(yw),min(yw),avg(yw),std(yw)
36  几个SET 命令
set  defa to  d:\my_vfp  指定数据环境
set date ansi    中国日期格式
do form 02xxzx    执行名为“02xxzx”的表单
附  FoxPro  上机练习题
一、请建立如下数据库,库名由学员自定,如:0218.dbf 。建库命令为 crea <;库主名>
学号姓名婚否出生电话语文数学英语总分
xh    xm        hun    chsh          dh        yw      sx        yy        zf
C,3  C,6        L,1    D,8            C,7      N,4,1    N,4,1  N,4,1  N,5,1
001  刘均仁未  01/23/71  8945321    58.0    65.5    52.5

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。