《vf实用例题学习教程》由会员分享,可在线阅读,更多相关《vf实用例题学习教程(6页珍藏版)》请在金锄头文库上搜索。
1、原始vf文档1、将“毕业学校”字段中的“学”用“学校”替换格式:replace all 毕业学校 with stuff(毕业学校,13,2,学校)或Replace all 毕业学校 with;Stuff(毕业学校,13,2,”学校”) 或Update vf学习教程 set 毕业学校=stuff(毕业学校,13,2,”学校”)2、选择“姓名/xm”字段中姓“杜”的所有同学格式: Select * from vf学习教程 where substr(姓名,1,2)=杜或Select * from vf学习教程 where 姓名=杜Select * from vf学习教程 where left(姓名,
2、2)=杜3、查询“姓名/xm”字段中第二个字符是“国”的所有同学格式:Select * from vf学习教程 where substr(姓名,3,2)=国3、查询“姓名/xm”字段中第二个字符是“国”的所有同学的个数格式:Select count(*) from vf学习教程 where substr(姓名,3,2)=国4、将表中的“Bmh”字段按“升序/降序”排列格式:Select * from vf学习教程 order by bmh 升序Select * from vf学习教程 order by bmh desc 降序5、选择出生日期是“1988年”的所有同学或个数Select * fr
3、om vf学习教程 where left(出生日期,4)=1988 Select count(*) from vf学习教程 where left(出生日期,4)=1988或Select * from vf学习教程 where substr(出生日期,1,4)=1988Select count(*) from vf学习教程 where substr(出生日期,1,4)=1988或Select * from vf学习教程 where substr(出生日期,3,2)=886、将毕业学校字段中的“学”用“学校”代替STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符
4、 STUFF(NOW,2,1,E) NEWreplace all 毕业学校 with stuff(毕业学校,13,2,学校)7、将毕业学校字段前加“黑龙江省”replace all 毕业学校 with 黑龙江省+毕业学校8、查询性别代码字段中名字是男生的所有同学Select * from vf学习教程 where substr(xbdm,1,1)=19、将身份证号转换成出生日期Set date to ymdreplace all csrq with ctod(subs(身份证号,7,4)+/+subs(身份证号,11,2)+/+subs(身份证号,13,2)10、subs()函数应用全写为su
5、bstr(字符串,m,n),是取子串的函数,意思是将字符串从位置m开始,取n个字符出来,如:substr(abcdefg,4,3)=def &从第4位开始取3个字符出来substr(abcdefg,2,5)=bcdef参数n可省略,表示取到最后,如:substr(abcdefg,4)=defg例:在数据库“vf学习教程”中,新增一个“出生日期/csrq”字段,并将其设为字符型,然后应用命令:replace all csrq with substr(身份证号,7,8)11、生成新表select * from vf学习教程 where subs(姓名,1,2)=王 into table 新表12、
6、查询总分大于600的select * from 2326cj where zf600这里的“zf/总分”字段的类型一定要是数值型13、在表“666666”中,查询班主任是某个人且按总分排序select * from 666666 where bzr=蔡光华 order by zf desc14、查询表20111中姓名或身份证号不在青2011级中的数据select * from 2011级 where a not in (select a from 20111)select * from 2011级 where a not in (select a from 20111) into table
7、20115四、VFP常用函数使用说明 (应用“数据库中教成绩”)1、数值运算函数 SQRT(x) 求平方根 SQRT(9) 3 INT(x) 取整数 INT(3.14) 3 ROUND(x) 四舍五入 ROUND(3.14159,4) 3.1416 MOD(x,y) 求X除以Y的余数 MOD(25,4) 1 MAX(x,y) 求X,Y中的最大值 MAX(7,8) 8 select max(zf) from 中教成绩MIN(x,y) 求X,Y中的最小值 MIN(1,2,3) 1 2、字符中操作函数 函数名 操作 例 结果 UPPER(S) 小写字母 UPPER(abc) ABC LOWER(S)
8、 大写字母 LOWER(ACD) acd LEN(S) 求字符串的长度 LEN(中国1号) 7 AT(S1,S2) 在字符串S2,找字符串S1 AT(H,CHINA) 2 SUBSTR(S,I,N) 在S字符串中的第I个字符起取N个字符 SUBSTR(TECHNOLO,3,3) CHN LEFT(S,N) 从字符串S左边取N个字符 LEFT(中国人,4) 中国 RIGHT(S,N) 从字符串S右边取N个字符 S=12345 RIGHT(S,3) 345 SPACE(N) 生成N个空格 合计+SPACE(2)+123 合计123 TRIM(S) 消除字符串尾部空格 TRIM(姓名 ) 姓名 AL
9、LTRI(S) 消除字符串中所有空格 ALLTRIM(李 丽) 李丽 STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符 STUFF(NOW,2,1,E) NEW & 宏替换 P=G2 USE &P USE G2 3、日期和时间函数 函数名 操作 例 结果 DATE() 求当前日期 DATE() 2001/11/12 DATETIME() 求当前日期和时间 DATETIME() 2001/11/12/0:22:33am YEAR(D) 求年份 YEAR(DATE() 2001 MONTH(D) 求月份(数值) MONTH(DATETIME() 11 CMON
10、TH(D) 求月份(字符) MONTH(DATETIME() Novenber DAY(D) 求日期 DAY(DATE() 12 DOW(D) 求星期几(数值) DOW(DATE() 1 CDOW(D) 求星期几(英文) CDOW(DATE() sunday TIME(D) 求当前时间 TIME(DATE() 10:20:38am 4、数据类型转换函数 函数名 操作 例 结果 ASC(S) 求第一个字符串的ASCII码 ASC(what) 87 CHR(N) 求ASCII码的字符 CHR(87) w STR(R,L,D) 数值转换成字符,L为长度,D为小数位数 X=3.1415 STR(X,6
11、,2) 3.14 VAL(S) 字符串转换为数值 VAL(123) 123.00 CTOD(S) 字符串转日期 CTOD(11/01/2002) 11/01/2002 DTOC(D) 日期转换成字符串 DTOC(DATE() 11/01/2002 DTOS(D) 把日期转成年月日式的字符串 DTOS(DATE() 20021101 CTOT(C) 字符串转成日期时间型 CTOT(11/01/2002 10:30:50am) 11/01/2002 10:30:50am DTOT(D) 日期型转为日期时间型 DTOT(DATE() 11/25/2001 00:00:01am TTOC(T) 日期时
12、间型转为字符型 TTOC(DATETIME() 11/25/2001 00:00:01am TTOD(T) 日期时间型转为日期型 TTOD(DATETIME() 11/25/2001 IIF(LE,E1,E2) 逻辑判断 IIF(A0,YES,NO) YES 5、检测函数 函数名 操作 例 结果 RECNO() 检测当前记录号 RECNO() 1 RECCOUNT() 检测当前记录数 RECCOUNT() 12 BOF() 开始记录 BOF() 1 EOF() 最后记录 EOF() 12 FOUND() 返回查找结果 FOUND() .T. ROW() 返回当前行坐标 ROW() 1 COL(
13、) 返回当前列坐五、身份证号(sfzh)中提取出生日期(csrq)注:身份证号为字符型字段,出生日期为日期型字段1、(1)、先建立一个中间过渡字段字符型格式,长度最好大于10位“rq”repl all rq with subs(sfzh,7,4)+/+subs(sfzh,11,2)+/+subs(sfzh,13,2)(2)、再运行下行命令set date to ymd repl all csrq with ctod(rq)(3)、这时你再brow下,csrq已经变成日期型格式的了!2、更简单的方法,只用两条命令:set date to ymdrepl all csrq with ctod(subs(sfzh,7,4)+/+subs(sfzh,11,2)+/+subs(sfzh,13,2)