cmp()

阅读(2853) 标签: 比较, 表达式, 序列,

描述:

比较两个表达式或者两个序列。

语法:

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的长度时,序列AB依次从前往后比较,序列A的成员更大就返回1,序列A的成员更小就返回-1,如果前面的成员都相同就返回0;当序列A的长度小于序列B的长度时,序列A的成员更大就返回1,序列A的成员更小就返回-1,如果前面的成员都相同,则返回-1

当两个序列A, B比较大小,即序列A, B中的成员数量相同时,所有成员完全相等返回0,否则从前往后比较,第一个不相等的成员更大就返回1,第一个不相等的成员更小就返回-1

cmp(A,0)

B参数值不存在时默认为0序列相当于序列AA等长的[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

相关概念:

序列乘

对位运算

和列