描述:
比较两个表达式或者两个序列
语法:
cmp(x, y) |
当两个表达式x, y比较大小时,相等返回0,大于返回1,小于返回-1; |
cmp(A{, B}) |
当两个序列A, B比较大小时,序列A, B中的成员数量相同时,所有成员完全相等返回0,否则从前往后比较,第一个不相等的成员更大就返回1,第一个不相等的成员更小就返回-1;序列A, B中的成员数量不相同时,如果前面的成员都相同,则成员数少的值小。 |
cmp(A;B) |
当序列A的长度大于等于序列B的长度时,序列A,B依次从前往后比较,序列A的成员更大就返回1,序列A的成员更小就返回-1,如果前面的成员都相同就返回0;当序列A的长度小于序列B的长度时,序列A的成员更大就返回1,序列A的成员更小就返回-1,如果前面的成员都相同,则返回-1。 当两个序列A, B比较大小,即序列A, B中的成员数量相同时,所有成员完全相等返回0,否则从前往后比较,第一个不相等的成员更大就返回1,第一个不相等的成员更小就返回-1。 |
cmp(A,0) |
当B参数值不存在时,默认为0序列,相当于序列A和与A等长的[0…0]序列比较 |
cmp(r1,r2) |
当两条记录r1,r2比较大小时,所有记录中的字段值完全相等返回0,否则从前往后比较,第一个不相等的字段值更大就返回1,第一个不相等的字段值更小就返回-1。记录r1,r2中的字段数量不相同时,如果前面的字段都相同,则成员数少的值小。
|
备注:
比较两个表达式x, y /序列A, B/记录r1,r2的大小,两者不能比较大小时报错。
参数:
x/y |
表达式 |
A/B |
序列,可为单值,视为1序列 |
r1/r2 |
记录 |
示例:
|
A |
|
1 |
=cmp(9,5*1.2) |
1 |
2 |
=cmp([3,2,1],[1,8,9]) |
1 |
3 |
=cmp([-1,4,8]) |
-1, 相当于cmp([-1,4,8],[0,0,0]) |
4 |
=cmp([0,3,5],0) |
1, 相当于 cmp([0,3,5],[0,0,0]) |
5 |
=cmp(1000,"a") |
数值和字符串不能比较大小,此时报错 |
6 |
=cmp("s","a") |
1 |
7 |
=cmp([0,3],[0,3,-5]) |
-1 |
8 |
=demo.query("select EID,GENDER,SALARY from EMPLOYEE") |
|
9 |
=demo.query("select EID,GENDER from EMPLOYEE") |
|
10 |
=cmp(A8(1),A9(1)) |
1, 前面的字段都相同,则成员数少的值小 |
11 |
=cmp(A8(1),A8(2)) |
-1 |
12 |
=cmp([-1,-4,8,9],[-1,-4,8,9,10]) |
-1 |
13 |
=cmp([-1,-4,8,9];[-1,-4,8,9,10]) |
-1序列A长度小于序列B,前面的字段都相同,则成员数少的值小 |
14 |
=cmp([-1,-4,8,9],[-1,-4,8]) |
1 |
15 |
=cmp([-1,-4,8,9];[-1,-4,8]) |
0序列A长度大于序列B,前面的字段都相同,返回0 |
相关概念: