SQL语句函数大全

二、字符中操作函数
UPPER(S) 小写字母 UPPER(abc) ABC
LOWER(S) 大写字母 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("姓名 ") 姓名
ALLTRI(S) 消除字符串中所有空格 ALLTRIM("李 丽") 李丽
STUFF(S1,N1,N2,S2) 用字符串S2替换S1中第N1个字符起的N2个字符 STUFF("NOW",2,1,"E") NEW
& 宏替换 P=“G2”
USE &P USE G2

二、常用函数
1、数学函数
函数 用途
ABS(<数值表达式>) 绝对值,|x|
CEILING(<数值表达式>) >=自变量的最小整数
EXP(<数值表达式>) 对基E的幂,e=2.71828
FLOOR(<数值表达式>) <=自变量的最大整数
INT(<数值表达式>) 取整(舍尾)自变量
LOG(<数值表达式>) 自变量的自然对数,ln x
LOG10(<数值表达式>) 自变量的普通对数,lg x
MAX(<表达式1>,<表达式2>)两个值的最大值
MIN(<表达式1>,<表达式2>)两个值的最小值
MOD(<数值表达式1>,<数值表达式2>)求余数
RAND([<数值表达式1>]) 返回伪随机数
ROUND(<数值表达式1>,<数值表达式2>)四舍五入第一个自变量
SIGN(<数值表达式>) 自变量的符号
SQRT(<数值表达式>) 平方根(正根)
2、字符串操作函数
函数 用途
&<内存变量> 用于代替内存变量内容
LEN(<字符串表达式>) 返回字符串表达式的字符个数
SPACE(<数值表达式>) 生成空格
SUBSTR(<字符串表达式>,<数值表达式n>[,<数值表达式L>])求子字符串,从指定的字符串表达式第n个开始,总长为L的字符串
LOWER(<字符串表达式>) 将字符串字母转换成小写字母
UPPER(<字符串表达式>) 将字符串字母转换成大写字母
TRIM(<字符串表达式>) 删除字符串尾空格
ASC(<字符串表达式>)返回字符串表达式最左边的第一个字符的ASCII码
CHR(<数值表达式>) 将数值表达式转换成字符
AT(<字符串表达式1>,<字符串表达式2>[,<数值表达式n>])
确定字符串表达式1在字符串表达式2中的位置,n为字符串表达式第几次出现
STR(<数值表达式>[,<数值表达式L>][,<数值表达式n>)将数值转换为字符串,L为数值表达式总长,n为小数位数
VAL(<字符串表达式>) 将数字字符串转换为数字
TYPE(<表达式>) 检测表达式值的数据类型
LTRIM(<字符串表达式>) 删除字符串左部空格
RTRIM(<字符串表达式>) 删除字符串右部空格
LEFT(<字符串表达式>,<数值表达式n>)取字符串左边部分字符,n为返回的字符个数
RIGHT(<字符串表达式>,<数值表达式n>)取字符串右边部分字符,n从右边截取字符个数
MONTH(<日期型表达式>|<日期时间型表达式>)从日期查月份函数
CMONTH(<日期型表达式>|<日期时间型表达式>)由日期查月份名函数
DAY(<日期型表达式>|<日期时间型表达式>)从日期查当月的日函数
DOW(<日期型表达式>|<日期时间型表达式>[,<数值表达式>])由日期查星期函数
5、显示、打印位置函数
函数 用途
ROW() 判断光标行位置函数
COL() 判断光标列位置函数
INKEY([<数值表达式>])检测用户所击键对应的ASCII码函数,数值表达式以秒为单位等待击键的时间
6、其他函数
函数 用途
DISKSPACE() 返回默认磁盘驱动器中可用字节数函数
OS() 检测操作系统名称的函数
VERSION() 返回VFP版本号的函数打开并修改数据表中的字段:
(1) CHANGE [FIELDS 字段名列表]
(2)EDIT[FIELDS字段名列表]这两个命令的功能相似,可选子句较多(详见手册)。数据表改名:RENAME TABLE tablename1 TO tablename2 其中数据表tablename1必须存在且未打开。
RENAME VIEW viewname1 TO viewname2——视图改名 其中数据表tablename1必须存在且未打开。
将当前表与另一表之间建立关联:
SET RELATION TO [表达式1 INTO 工作区号1 | 表别名1];[, 表达式2 INTO 工作区号2 | 表别名2] [, ...] 建立关联的两个表必须事先已按关联表达式进行索引排序。

在当前表与另一表之间建立一对多关联:SET SKIP TO表别名1[, 表别名2]
消除当前表与另一表之间的关联:SET RELATION OFF INTO 工作区号 | 表别名
清除当前记录中字段的数据:

五、文件管理(文件和文件夹的复制、创建和删除)    
从当前表复制出表或其它类型的文件(表须打开)
COPY TO filename [FIELDS 字段名列表] [常用子句] [其它子句] 如果没有指定类型,则复制一个与当前的表相同的数据表。
复制表的结构:COPY STRUCTURE TO filename [FIELDS字段名列表]
复制任何文件: COPY FILE 源文件 TO 目的文件
如果用此命令复制表,表须关闭
六、数据的复制与传送    
单个记录与数组间的数据传送 
当前记录 → 数组或内存变量:
SCATTER [FIELDS字段名列表][MEMO]TO 数组名 [BLANK] | MEMVAR [BLANK]
其中[BLANK]表示建立一个空元素的数组。如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。
如果包含MEMO子句,则备注字段一起复制。
数组或内存变量 → 当前记录 
GATHER FROM 数组名 | MEMVAR [FILEDS字段名列表] [MEMO]
用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。
成批记录与数组间的数据传送 
表 → 数组:
COPY TO ARRAY arrayname [常用子句]
数组 → 表:
(1) APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表]
用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。
(2) REPLACE FROM ARRAY数组名 [常用子句]
用内存数组的值更新数据表中符合条件的记录。
查询结果 → 数组:
SELECT …… INTO ARRAY arrayname
将SQL SELECT语句的查询结果传给数组arrayname。这里“SELECT ……”可为各种形式的SELECT查询语句。
内存变量赋值:
STORE 表达式 TO 变量名

变量名=表达式
七、排序与索引   

将当前表排序后建立一个新数据表:SORT TO 文件名 ON 字段名1 [/A | /D] ;[/C] [ 字段名2 [/A | /D] [/C] ...];

[ASCENDING | DESCENDING] [常用子句];


建立单索引文件:

INDEX ON 表达式 TO 单索引文件名;

[FOR<条件>] [UNIQUE] [COMPACT];

[ASCENDING][DESCENDING][ADDITIVE]


建立复合索引文件:

INDEX   ON 表达式 TO TAG 索引名 [OF 复合索引文件名];

[FOR 条件] [UNIQUE|CANDIDATE];

[ASCENDING][DESCENDING][ADDITIVE]


使用索引文件:

打开表时将索引文件一并打开,USE命令带INDEX子句:

USE tablename|? [IN 工作区号][INDEX 索引文件名列表|?]
给当前表打开一个或多个索引文件:SET INDEX TO[索引文件名列表|?];[ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] ;[ASCENDING][DESCENDING]]

指定字符字段在排序或索引时的整理系列:SET COLLATE TO 整理系列对于汉字字符串,“整理系列”可以是“Machine”、“PinYin”或“Stroke”三者之一(必须带引号),分别表示按机器码、拼音和笔划排序。

八、查找和定位    
顺序查找当前表中满足条件的第一条记录:
LOCATE FOR 条件下[范围][WHILE条件]
找到后将记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真。
在索引表中查找:
FIND cExpr
其中cExpr为字符串表达式。如果找到,则记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。
在索引表中查找:SEEK eExpr;[ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] ;[ASCENDING][DESCENDING]];[IN 工作区号|表别名]
如果找到,则记录指针定位在满足条件的第一条记录,且为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。
继续查找:CONTINUE
用LOCATE、 FIND或 SEEK查找到一条记录后,用CONTINUE继续查找下一条。
用以上查找命令LOCATE、 FIND、SEEK和CONTINUE的查找结果,都可以通过函数FOUND()的返回值反映出来。
九、统计计算    
统计表中的记录数:COUNT [范围] [FOR 条件] [WHILE 条件][TO内存变量名]
统计满足条件的记录数,显示记录数或将结果赋给内存变量名。
求和:SUM [表达式列表];[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]
求平均值:AVERAGE [表达式列表];[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]
对当前表中数值型字段进行分组求和:TOTAL TO tablename ON 字段名[常用子句]
其中tablename为存放结果的表文件名,字段名为确定求和分组的字段。
计算:CALCULATE 表达式列表;[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]

其中表达式列表可以是如下函数的任意组合:
AVG(nExpr), CNT(), MAX(eExpr), MIN(eExpr), NPV(nExpr1, nExpr2,…),
STD(nExpr),SUM(nExpr),VAR(nExpr)其中nExpr为数值表达式,eExpr为任意表达式。

定义数组:DECLARE | DIMENSION 数组名(下标1,下标2,……)
定义过程:PROCEDURE 过程名PARAMETERS 参数表……
RETURN [TO MASTER | TO 程序名]
定义函数:FUNCTION 函数名PARAMETERS 参数表……
RETURN 表达式
定义公共变量:PUBLIC 变量名列表
PUBLIC [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]
定义私有变量PRIVATE变量名列表PRIVATE ALL[LIKE | EXCEPT 通配符]
定义局部变量LOCAL 变量名列表
LOCAL [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]
显示各种信息:
设置是否显示日期中的世纪:SET CENTURY ON | OFF
设置显示的小数位数:SET DECIMALS TO 小数位数
设置是否处理带删除标记的记录:SET DELETED ON | OFF
如果设置为ON,则不处理带删除标记的记录。
设置是否显示命令的结果:SET TALK ON | OFF
设置文件的搜索路径:SET PATH TO 路径
设置传给子程序或自定义函数的参数是按值还是按引用方式传递:
SET UDFPARMS TO VALUE | REFERENCE设置为TO VALUE,表示按值传递。
执行一个外部命令或程序:RUN 命令或程序
在指定的位置显示或打印:@行,列 SAY …
在指定的位置显示表达式的值,并等待用户输入,将输入值赋给一变量:@行,列 SAY 表达式 GET 变量名 [DEFAULT 表达式]READ
例:@2,2 say "请输入金额: " get nMoney default 50Read
此例先在第2行、第2列显示"请输入金额: ",等待用户输入一个数值,将用户输入值赋给变量nMoney,如果用户不输入数值(直接按回车),则将50赋给nMoney。请注意在下一行不能漏掉“Read”。
ALL: 命令对表中所有记录起作用,即执行时从首记录到末记录,最记录指针停在数据库的末尾。 
NEXT <expN> 命令作用于从当前记录开始到当前记录后<expN>条记录为止的范围内的记录,最后记录指针指向作用范围内的最后一条记录处。NEXT 1表示仅作用于当前记录。 
Record <expN> 命令作用于记录号为<expN>的记录。 
TEST 命令作用范围从当前记录开始到表的最后一个记录为止 命令中的FOR子句只作用于满足条件的记录。

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
列举了SQL语句中大部分常用的函数 Abs(number) 取得数的绝对。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(expression) 转换表达式为Byte 型态。 CChar(expression) 转换表达式为字符型态。 CDate(expression) 转换表达式为Date 型态。 CDbl(expression) 转换表达式为Double 型态。 CDec(expression) 转换表达式为Decimal 型态。 CInt(expression) 转换表达式为Integer 型态。 CLng(expression) 转换表达式为Long 型态。 CObj(expression) 转换表达式为Object 型态。 CShort(expression) 转换表达式为Short 型态。 CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型态。 Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引来选择并传回所设定的参数。 Chr(charcode) 以ASCII 码来取得字符内容。 Close(filenumberlist) 结束使用Open 开启的档案。 Cos(number) 取得一个角度的余弦。 Ctype(expression, typename) 转换表达式的型态。 DateAdd(dateinterval, number, datetime) 对日期或时间作加减。 DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差。 DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。 DateSerial(year, month, day) 将接收的参数合并为一个只有日期的Date 型态的数据。 DateValue(datetime) 取得符合国别设定样式的日期,并包含时间。 Day(datetime) 依接收的日期参数传回日 ....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值