函數(shù)的一般形式是:函數(shù)名(自變量表)
其中函數(shù)名是系統(tǒng)規(guī)定的,自變量表可以是一個(gè)變量或多個(gè)自變量,也可以為空,即:函數(shù)名(),此時(shí)函數(shù)名后面的一對(duì)圓括號(hào)不能省略。
1、數(shù)學(xué)函數(shù)(數(shù)值函數(shù))
求絕對(duì)值函數(shù)ABS
格式:ABS( expN)
求整函數(shù)INT
格式:INT( expN)
四舍五入函數(shù)ROUND
格式:ROUND( expN,〈保留小數(shù)位〉)
功能:按保留小數(shù)位指定的位數(shù)對(duì) expN的數(shù)值進(jìn)行四舍五入。
說明:當(dāng)保留小數(shù)位為正整數(shù)或零時(shí),系統(tǒng)將自動(dòng)對(duì)其后一位上的數(shù)進(jìn)行四舍五入處理;當(dāng)其為負(fù)數(shù)時(shí),舍入將在整數(shù)部分進(jìn)行,這時(shí)保留小數(shù)位的絕對(duì)值為從個(gè)位開始向左被舍入的位數(shù)。
ROUND(3.14159,3) → 3.14200
FLOOR() 函數(shù) 對(duì)于給定的數(shù)值型表達(dá)式的值,返回小于或等于它的最大整數(shù)。
格式:FLOOR( expN)
CEILING()函數(shù) 返回大于或等于指定數(shù)值表達(dá)式的下一個(gè)最高整數(shù)。
語法CEILING( expN)返值類型
指數(shù)函數(shù)EXP、自然對(duì)數(shù)函數(shù)LOG、平方根函數(shù)SQRT、
格式:EXP| LOG | SQRT ( expN)
取模 (求余數(shù))函數(shù)MOD
格式:MOD( expN1, expN2)
功能:取 expN1除以 expN2的余數(shù)。
說明:余數(shù)的正負(fù)號(hào)與 expN2相同。當(dāng)兩個(gè)表達(dá)式的值同號(hào)時(shí),函數(shù)值為 expN1除以 expN2所得到的余數(shù);兩個(gè)表達(dá)式的值異號(hào)時(shí),函數(shù)值為 expN1除以 expN2所得到的余數(shù)再加上 expN2的值。
MOD(20,3) → 2
MOD(20,-3) → -1
MOD(-20,-3) → -2
MOD(-20,3) → 1
求最大值MAX、最小值MIN
格式:MAX| MIN (exp1,exp2[,…])
功能:求exp1和exp2[,…]中的最大、最小者。
2、字符串函數(shù)
找子字符串AT
格式:AT(〈字符表達(dá)式1〉,〈字符表達(dá)式2〉)
功能:求〈字符表達(dá)式1〉在〈字符表達(dá)式2〉的起始位置數(shù)值。
說明:①若〈字符表達(dá)式2〉中不包含〈字符表達(dá)式1〉,則函數(shù)值為零;
②若〈字符表達(dá)式2〉的值含有兩個(gè)以上的〈字符表達(dá)式1〉的值,則函數(shù)給出第一個(gè)值的位置。
③大小寫字母在檢索中視為不同。
AT("數(shù)據(jù)","計(jì)算機(jī)數(shù)據(jù)管理系統(tǒng)") → 7
求子串函數(shù)SUBSTR
格式:SUBSTR expC,〈起始位置〉[,〈長度〉]
功能:對(duì) expC從給定的〈起始位置〉開始截取指定長度的字符,生成一個(gè)新的字符串;
說明:①若無<長度>或<長度>大于后面剩余的字符個(gè)數(shù),則截至末尾。
②若〈起始位置〉大于字符串表達(dá)式長度,則輸出空串。
SUBSTR("110102490217041",7,6) → 490217
取左、右子串函數(shù)
格式:LEFT|RIGHT ( expC, expN)
功能:LEFT 從 expC左邊截取由 expN的值指定的字符,生成一個(gè)新的字符串;
RIGHT 從 expC右邊截取由 expN的值指定的字符,生成一個(gè)
新的字符串;
LEFT('FOXPRO數(shù)據(jù)庫管理系統(tǒng)',6) → FOXPRO
RIGHT('FOXPRO數(shù)據(jù)庫管理系統(tǒng)',14) → 數(shù)據(jù)庫管理系統(tǒng)
刪除首部和尾部空格函數(shù)LTRIM和TRIM(RTRIM)
格式:LTRIM|TRIM ( expC)
功能:LTRIM刪除字符串首部的空格
TRIM 刪除字符串尾部的空格
說明:ALLTRIM則可刪除字符串首尾部的空格。
構(gòu)造空格函數(shù)SPACE
格式:SPACE( expN)
功能:產(chǎn)生由 expN的值決定的空格數(shù)。
字符串長度函數(shù)LEN
格式:LEN( expC)
功能:測定字符串的長度(字符個(gè)數(shù))。
LEN('FOXPRO數(shù)據(jù)庫管理系統(tǒng)') → 20
生成重復(fù)字符串函數(shù)REPLICATER
格式:REPLICATER( expC, expN)
功能:把 expC的值(字符串)重復(fù)由 expN的值指定的次數(shù),生成新的字符串。
REPLICATE('FOXPRO',3) → FOXPROFOXPROFOXPRO
大小寫字母轉(zhuǎn)換函數(shù)LOWER|UPPER
格式: LOWER|UPPER ( expC)
功能:LOWER把 expC中的大寫字母轉(zhuǎn)換為小寫字母;
UPPER把 expC中的小寫字母轉(zhuǎn)換為大寫字母。
LOWER([FoxPro]) → foxpro
UPPER([FoxPro]) → FOXPRO
字符串替換函數(shù)STUFF
格式:STUFF(<字符表達(dá)式1>,<起始位置>,<字符個(gè)數(shù)>,<字符表達(dá)式2>)
功能:從指定位置開始,用<字符表達(dá)式2>替換<字符表達(dá)式1>。
說明:①<字符表達(dá)式2>中的字符個(gè)數(shù)與<字符表達(dá)式1>中的字符個(gè)數(shù)可以不等。
②如果<字符個(gè)數(shù)>為0,則插入<字符表達(dá)式2>。
③如果<字符表達(dá)式2>為空字符串,則刪除<字符表達(dá)式1>中指定字符。
HY='熱烈歡迎各位來我校參觀指導(dǎo)!'
?STUFF(HY,9,4,'各校領(lǐng)導(dǎo)')→ 熱烈歡迎各校領(lǐng)導(dǎo)來我校參觀指導(dǎo)!
?STUFF(HY,13,0,'貴賓') → 熱烈歡迎各位貴賓來我校參觀指導(dǎo)!
?STUFF(HY,9,10,'') → 熱烈歡迎參觀指導(dǎo)!
3、日期和時(shí)間函數(shù)
系統(tǒng)日期函數(shù)DATE
格式:DATE()
?DATE() → 99/11/15
系統(tǒng)時(shí)間函數(shù)TIME
格式:TIME()
?TIME() → 08:50:43
年、月、日函數(shù)YEAR|MONTH|DAY
格式:YEAR|MONTH|DAY( expD)
功能:從 expD中求出年份、月份、日份的數(shù)值。
DATE(),YEAR(DATE()) → 99/11/15 1999
DATE(),MONTH(DATE()) → 99/11/15 11
DATE(),DAY(DATE()) → 99/11/15 15
星期函數(shù)DOW|CDOW
格式1:DOW ( expD)
格式2:CDOW ( expD)
功能:①格式1給出 expD指定的日期是一星期的第幾天。
(1表示星期日,2表示星期一,……,7表示星期六)
②格式2給出星期幾的英文名稱。
?DATE(),DOW(DATE()),CDOW(DATE())→ 99/11/14 1 Sunday
4、類型轉(zhuǎn)換函數(shù)
字符轉(zhuǎn)換為數(shù)值函數(shù)VAL
格式:VAL( expC)
功能:將字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。
說明:①若<字符表達(dá)式>由數(shù)字字符和小數(shù)點(diǎn)組成,則轉(zhuǎn)換成相應(yīng)的數(shù)值,但只保留兩位
小數(shù),其余小數(shù)四舍五入。
②若<字符表達(dá)式>由非數(shù)字字符打頭,則轉(zhuǎn)換為0.00。
③若<字符表達(dá)式>由數(shù)字字符打頭,且混有非數(shù)字字符時(shí),則轉(zhuǎn)換到第一個(gè)。
?VAL("1234.5678") → 1234.57
VAL("FoxPro") → 0.00
VAL("1234FOX.5678") → 1234.00
數(shù)值轉(zhuǎn)換為字符函數(shù)STR
格式:STR( expN[,〈長度〉][,〈小數(shù)位數(shù)〉]))
功能:把 expN的運(yùn)算結(jié)果轉(zhuǎn)換為指定長度的字符串。
說明:①<長度>應(yīng)包括小數(shù)點(diǎn)在內(nèi),不指定長度時(shí),系統(tǒng)默認(rèn)整數(shù)位10位。
②若指定<長度>小于<數(shù)值表達(dá)式>整數(shù)位數(shù),則用一串"*"號(hào)表示數(shù)據(jù)溢出;若<長度>為0,則返回空字符串。
③若省略<小數(shù)位>,則只轉(zhuǎn)換整數(shù)位;若指定小數(shù)位,則對(duì)下一位四舍五入。
STR(1234.5678,7,2) → 1234.57
STR(1234.5678,4) → 1235
STR(1234.5678) → 1234
STR(1234.5678,3) → ***
STR(1234.5678,2) → **
STR(1234.5678,0) → (空字符串)
字符轉(zhuǎn)換為日期函數(shù)CTOD
格式:CTOD( expC)
功能:將符合yy/mm/dd 、mm/dd/yy日期格式的字符串轉(zhuǎn)換為相應(yīng)日期。
CTOD('99/11/15') → 99/11/15
日期轉(zhuǎn)換為字符函數(shù)DTOC
格式:DTOC( expD[,1])
功能:將<日期表達(dá)式>轉(zhuǎn)換為相應(yīng)的字符串。
說明:不選用,1時(shí),按mm/dd/yy格式轉(zhuǎn)換;選用,1時(shí),按yyyymmdd格式轉(zhuǎn)換。
DTOC(DATE()),DTOC(DATE(),1) → 99/11/15 19991115
字符轉(zhuǎn)換成ASCII碼值函數(shù)ASC
格式:ASC( expC)
功能:返回<字符表達(dá)式>最左邊的一個(gè)字符的ASCII碼值。
ASC('A'),ASC('a'),ASC('0') → 65 97 48
漢字的ASCII碼(略)
ASCII碼值轉(zhuǎn)換為字符函數(shù)CHR
格式:CHR( expN)
功能:將<數(shù)值表達(dá)式>所表示的ASCII碼值轉(zhuǎn)換為相應(yīng)的字符。
CHR(65),CHR(97),CHR(48) → A a 0
ASC( expC)和CHR( expN)互為反函數(shù)。
5、數(shù)據(jù)庫處理和測試函數(shù)
記錄號(hào)測試函數(shù) RECNO
格式:RECNO([數(shù)值型表達(dá)式])
功能:給出<數(shù)值表達(dá)式>指定的工作區(qū)中打開的數(shù)據(jù)庫的當(dāng)前記錄號(hào)。
說明:①不選用<數(shù)值表達(dá)式>時(shí),給出當(dāng)前工作區(qū)數(shù)據(jù)庫當(dāng)前記錄號(hào)。
②若<數(shù)值表達(dá)式>指定的工作區(qū)沒有打開數(shù)據(jù)庫文件,則返回值為0。
文件起始測試函數(shù) BOF
格式:BOF([數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定的工作區(qū)中庫文件記錄指針是否指向起始位置。是函數(shù)值為邏輯真(.T.),否則為假(.F.)。
說明:①庫文件起始位置在首記錄的前面,也稱為文件頭。
②不選用<數(shù)值表達(dá)式>時(shí),測試當(dāng)前工作區(qū)數(shù)據(jù)庫文件。
③若<數(shù)值表達(dá)式>指定的工作區(qū)沒有打開數(shù)據(jù)庫文件,則返回值永為.F.。
文件結(jié)束測試函數(shù) EOF
格式:EOF([數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定工作區(qū)中庫文件記錄指針是否指向結(jié)束位置。是函數(shù)值為邏輯真(.T.),否則函數(shù)值為假(.F.)。
說明:①庫文件結(jié)束位置在未記錄的下面,也稱為文件尾。
②不選用<數(shù)值表達(dá)式>時(shí),測試當(dāng)前工作區(qū)數(shù)據(jù)庫文件。
③若<數(shù)值表達(dá)式>指定的工作區(qū)沒有打開數(shù)據(jù)庫文件,則返回值永為.F.。
文件測試函數(shù) FILE
格式:FILE(〈文件名〉)
功能:測試<字符表達(dá)式>指定的磁盤文件是否存在,若存在,函數(shù)值為邏輯真(.T.),否則函數(shù)值為假(.F.)。
記錄測試函數(shù) RECOUNT
格式:RECOUNT([數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定的工作區(qū)中數(shù)據(jù)庫的記錄個(gè)數(shù)。
說明:①不選用<數(shù)值表達(dá)式>時(shí),測試當(dāng)前工作區(qū)數(shù)據(jù)庫記錄個(gè)數(shù)。
② 若<數(shù)值表達(dá)式>指定的工作區(qū)沒有打開數(shù)據(jù)庫文件,則返回值為0。
記錄大小測試函數(shù) RECSIZE
格式:RECSIZE[數(shù)值型表達(dá)式])
功能:測試<數(shù)值表達(dá)式>指定的工作區(qū)中數(shù)據(jù)庫記錄的長度(字節(jié)數(shù))。
說明:①不選用<數(shù)值表達(dá)式>時(shí),在當(dāng)前工作區(qū)測試。
②若<數(shù)值表達(dá)式>指定的工作區(qū)沒有打開數(shù)據(jù)庫文件,則返回值為0。
FSIZE() 函數(shù)以字節(jié)為單位,返回指定字段或文件的大小。
格式:FSIZE(cFieldName [, nWorkArea | cTableAlias] | cFileName)
數(shù)據(jù)類型測試函數(shù) TYPE(expN|expC):計(jì)算字符表達(dá)式,并返回表達(dá)式的數(shù)據(jù)類型。
別名測試函數(shù)ALIAS(expN|expC):返回指定工作區(qū)中數(shù)據(jù)表的別名。
表文件名測試函數(shù)DBF (expN|expC):返回指定工作區(qū)中數(shù)據(jù)表的文件名。
字段數(shù)測試函數(shù) FCOUNT (expN|expC):返回指定工作區(qū)中數(shù)據(jù)表的字段數(shù)。
字段名測試函數(shù)FIELD(expN1[,expN|expC]):返回指定工作區(qū)數(shù)據(jù)表第expN1個(gè)字段名。
記錄號(hào)RECNO(expN|expC):返回指定工作區(qū)中當(dāng)前記錄指針?biāo)谟涗浀木幪?hào)。
當(dāng)前工作區(qū)測試函數(shù) SELECT()
刪除標(biāo)記測試DELETE(expN|expC): 測試當(dāng)前記錄是否加刪除標(biāo)記。
FOUND(expN|expC):如果最近執(zhí)行 CONTINUE、FIND、WDEXSEEK()、LOCATE 或 SEEK 命令成功,函數(shù)返回值為“真”(.T.)。