




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,SETEXACTON|OFF的进一步说明参数ON指定相等的表达式必须是每个字符都相匹配。比较时,忽略表达式结尾的空格。参数OFF(默认值)必须是右端表达式结尾前的每个字符都相匹配,才是相等的表达式。备注SETEXACT设置值对于相等长度的字符串没有任何作用。,2,例如:(1)setexactoff?abcd=abc?abc=abcd?abc=abc?abcd=abc(2)setexacton?abcd=abc?abc=abc?abc=abc,3,3.3.2字符函数(参数C,或函数结果C)1字符串长度函数LEN()N【格式】LEN()【功能】返回cExp串包含的字符个数(长度)。如:?LEN(VisualFoxPro程序设计)212大小写转换函数LOWER()和UPPER()C【格式】LOWER()UPPER()【功能】LOWER()将cExp串中字母全部变成小写字母,UPPER()将cExp串中字母全部变成大写字母,其它字符不变。如:?LOWER(VisualFoxPro程序设计)visualfoxpro程序设计,4,3空格函数SPACE()C【格式】SPACE()【功能】返回一个包含nExp个空格的字符串。例如:?“姓名”+SPACE(4)+”性别”姓名性别4删除字符串前后空格函数C【格式】TRIM()LTRIM()ALLTRIM()【功能】TRIM()删除cExp串的尾部的空格字符。LTRIM()删除cExp串的前导空格字符。ALLTRIM()删除cExp串的前导和尾部的空格字符。,5,5取子串函数LEFT()、RIGHT()、SUBSTR()C【格式】LEFT(,)RIGHT(,)SUBSTR(,)【功能】LEFT()返回从CExp串的左边截取NExp个字符的子串。RIGHT()返回从CExp串的右边截取NExp个字符的子串。SUBSTR()返回从串CExp中第N1个字符开始,截取N2个字符的子串。,6,例如:?LEFT(123456789,4),LEFT(外贸财会,4)1234外贸?RIGHT(123456789,4),RIGHT(青岛大学,2)6789学ss=青岛大学?SUBSTR(ss,5),SUBSTR(ss,5,0),SUBSTR(青岛大学,9)大学,7,6计算子串出现次数函数OCCURS()N【格式】OCCURS(,)【功能】返回串1在串2中的出现的次数,函数值为整数。如果串2不包含串1,函数返回值为零。说明:若串1是串2的其中一部分,则称串1是串2的一个子串例如:STORE“abcaregtraf”TOS?OCCURS(“a”,S),OCCURS(“r”,S)32,8,7求子串位置函数N【格式】AT(,)ATC(,)【功能】AT()返回串1在串2中的起始位置,函数值为整数。如果串2不包含串1,函数返回值为零。ATC()功能与AT()类似,只是不区分大小写例如:?AT(“is”,”thisisabook.”,2)?AT(“Is”,”thisisabook.”)?ATC(“Is”,”thisisabook.”)603,9,8子串替换函数STUFF()C【格式】STUFF(,)【功能】用C2串替换C1串中从N1指定位置开始的N2个字符。即从C1的第N1个字符开始删去N2个字符,并将C2插在该位置上。说明:若N2=0,则只插入不删除;若C2是空串,则只删除不插入。例如:ss=ABCDEF?STUFF(ss,3,3,123),STUFF(ss,2,0,*)AB123FA*BCDEF?STUFF(ss,2,3,),STUFF(ss,8,3,*)AEFABCDEF*,10,9字符串替换函数CHRTRAN()C【格式】CHRTRAN(,)【功能】当C1串中的一个或多个字符与C2串中的某个字符相匹配时,就用C3串中对应字符(相同位置)替换这些字符。说明:若C3串包含的字符个数少于C2串中包含的字符个数,则C1串中相匹配的字符被删除。若C3串多于C2串,多余字符被忽略。例如:X1=CHRTRAN(ABACAD,ACD,X12)Y1=CHRTRAN(计算机ABC,计算机,电脑)Z1=CHRTRAN(大家好!,大家,多数人)?X1,Y1,Z1XBX1X2电脑ABC多数好!,11,10字符匹配函数LIKE()L【格式】LIKE(,)【功能】比较两个字符串对应位置上的字符,若所有对应字符都相匹配,则函数返回.T.,否则函数返回.F.。说明:中可包含通配符?和*。例如:X=“abc”Y=“abcd”?LIKE(“ab*”,X),LIKE(“ab*”,Y),LIKE(X,Y),LIKE(“Abc”,X).T.T.F.F.,12,11将字符转换成ASC码的函数ASC()-N【格式】ASC()【功能】给出指定字符串最左边的一个字符的ASC码值。12将ASC码值转换成相应字符函数CHR()-C【格式】CHR()【功能】将数值表达式的值作为ASC码,给出所对应的字符,13,课堂练习,一、填空:1、LEN(“北京-NBCH”)=_2、AT(abc,DFABCLN)=_3、SUBSTR(“Itsabook”,8)=_4、A=GoodByeB=“LIMING”STUFF(A,6,3,B)=_5、m=“XYZ12”LIKE(“?12”,m)=_LIKE(“*12”,m)=_6、LEFT(“北京-NBCH”,4)=_,14,假设S1=重庆计算机基础学会(1)从字符串S1中分别取出字符串“重庆”、“计算机”、“学会”;?left(s1,4),substr(s1,5,6),right(s1,4)(2)分别测试字符串“计算机”、“计算机学会”在字符串S1中的起始位置。?at(计算,s1),at(计算机学会,s1)(3)测试字符串“学会”在字符串“重庆计算机基础学会是西南地区计算机基础研究学会”第二次出现的位置;?at(学会,重庆计算机基础学会是西南地区计算机基础研究学会,2)(4)将字符串S1中的“重庆”改成“西部地区”;?stuff(s1,1,4,西部地区)(5)将字符串S1中的“基础”去掉;?stuff(s1,11,4,)(6)在字符串S1的前后各加5个星号;?*+s1,15,假设S2=abCD34fgS(其中“”表示空格)(1)分别删除字符串S2的首部空格、尾部空格、首尾的所有空格;(2)将字符串S2中所有字母分别转换为大写字母、小写字母;?ltrim(s2);?trim(s2);?alltrim(s2)?lower(s2);?upper(s2),(3)分别测试字符串A,ABC的ASC码。(4)输出比“Z”的ASCII小20的字符。?asc(A);?asc(ABC)?chr(asc(Z)-20),16,3.3.3日期和时间函数(参数D,或结果D)日期时间函数是处理日期型或日期时间型数据的函数。其自变量为日期型表达式dExp或日期时间型表达式tExp。1系统日期和时间函数【格式】DATE()返回当前系统日期DTIME()返回当前系统时间,格式为hh:mm:ss。CDATETIME()返回当前系统日期时间T,17,2求年份、月份和天数函数N【格式】YEAR()MONTH()DAY()【功能】YEAR()返回D|T中的年份值。(如:2004)MONTH()返回D|T中的月份数。DAY()返回D|T中的天数。例:?YEAR(DATE(),YEAR(1999/12/23+20)20102000?DATE(),MONTH(DATE(),DAY(2010/05/08+20),18,3时、分和秒函数N【格式】HOUR()MINUTE()SEC()【功能】HOUR()返回T中的小时部分。MINUTE()返回T中的分钟部分。SEC()返回T中的秒数部分。例:T=2004-12-3110:15:36p?HOUR(T),MINUTE(T),SEC(T)221536,19,3.3.4数据类型转换函数7在数据库应用的过程中,经常要将不同数据类型的数据进行相应转换,满足实际应用的需要。1数值转换成字符串的函数STR()C【格式】STR(,)【功能】将N1的数值转换成长度为N2,小数位数为N3的字符串形式。N型C型说明:转换以后的长度,默认值为10。要保留的小数位数,默认值为0。例如:?“计算结果为:”+STR(1234.567,7,2)计算结果为:1234.57,20,2字符型转换成数值型函数VAL()N【格式】VAL()【功能】将C串中数字转换成对应数值C型N型说明:转换结果取两位小数。遇到非数字字符即停止转换。例如:?VAL(2360),VAL(12*4),VAL(56.345.8)2360.0012.0056.35?VAL(WIN95),0.00,21,3字符型转换成日期货日期时间型函数D【格式】CTOD()DCTOT()T【功能】CTOD()把C串转换成对应日期型数据。C型D型CTOT()把C串转换成对应日期时间型数据。C型T型例如:?CTOT(“09/10/200320:09:52)09/20/0320:09:52注意:字符表达式应与所设置的日期格式相同,否则出错。,22,4日期或日期时间型转换成字符型函数【格式】DTOC(,1)CTTOC(,1)C【功能】把日期D或日期时间T转换成相应的字符串。D/T型C型说明:选1时,DTOC()函数的输出格式是YYYYMMDD,共8个字符;TTOC()函数的输出格式是YYYYMMDDHHMMSS,共14个字符.,23,例如:C1=DTOC(DATE()?time()(2)取出系统日期时间中的年、月、日、时、分、秒;?year(date(),month(date(),day(date()?hour(datetime(),minute(datetime(),sec(datetime()(3)假设C=“07/21/2005“,将字符串C转换为日期型并求出它15天后的日期;c=07/21/2005?ctod(c)+15(4)分别将字符串“123.456”、“34abc56”、“ab123”转换成数值型,并观察它们的不同;?val(123.456),val(34abc56),val(ab123)123.4634.000.00,25,5宏替换函数【格式】&.【功能】替换出字符型内存变量的内容。说明:1)圆点.作为函数结束的标记。圆点后为回车或空格时,圆点可省2)它是惟一不带圆括号的函数。例1:X=CHINAY=“X”?Y,&Y,XCHINA,例3:A=“&B”B=“C”C=“D”?A,&A,&B&BDD,例2:A=20B=35+?&B.A55,26,3.3.5测试函数1值域测试函数BETWEEN()L【格式】BETWEEN(,)【功能】判断一个表达式的值是否介于另外两个表达式之间。说明:(1)若介于和之间,则函数值为真(.T.),否则为假(.F.)。(2)如果和有一个为NULL值,那么函数值也是NULL值。(3)自变量的类型可以是:N,C,D,T,F,B,Y,但三个自变量的类型必须一致。,27,例如:STORE.NULL.TOXY=100?BETWEEN(150,Y,Y+100),BETWEEN(90,X,Y).T.NULL.,28,2空值(NULL值)测试函数ISNULL()L【格式】ISNULL()【功能】判断一个表达式的运算结果是否为空值NULL。说明:若是NULL值,则函数值为真(.T.),否则为假(.F.)。例如:STORE.NULL.TOX?X,ISNULL(X).NULL.T.,29,3“空”值测试函数EMPTY()L【格式】EMPTY()【功能】测试表达式的运算结果是否为“空”值。返回逻辑真(.T.)或假(.F.)。说明:自变量的类型可以是:N,C,D,T。不同类型数据的“空”值,有不同的规定。,30,4数据类型测试函数C【格式】VARTYPE(,)TYPE(“”)【功能】测试表达式的数据类型,返回值是一个表示数据类型的大写字母(C,N,Y,D,L,)。注意(vartype)若的运算结果是NULL,则根据的值决定是否返回的类型:.T.返回的类型;.F.或省略则返回X。,31,例如:A=“10/20/04”B=.NULL.Z=$102.45?VARTYPE(A),VARTYPE(Z),VARTYPE(DATE()CYC?TYPE(“B”),VARTYPE(B),VARTYPE(B,.T.)LXL,32,9条件测试函数IIF()【格式】IIF(,)【功能】逻辑表达式L值为真(.T.),返回表达式1的值,否则返回表达式2的值。例如:x=5y=3?IIF(xy,“Yes”,“No”),33,第3节重点,掌握各函数的格式、功能、使用方法;注意自变量和函数值的类型。重点函数有:1、数值运算函数:INT、CEILING、FLOOR、ROUND、MOD、MAX、MIN、SQRT、SIGN2、字符串处理函数:AT、SUBSTR、LEFT、RIGHT、TRIM、LTRIM、STUFF、LEN、&3、日期与时间函数:DATE、TIME、YEAR、MONTH、CMONTH、DOW、CDOW、DAY4、数据类型转换函数STR、VAL、CTOD、CTOT、DTOC、TTOC5、测试函数TYPE、IIF、ISNULL、EMPTY、BETWEEN,34,课堂练习,一、写出下列命令的执行结果:D=CTOD(“10/01/04”)D1=D+35?D1,D1-4?YEAR(D1)?VARTYPE(D1)?LEN(“&D1”)D2=DTOC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论