使用以下逻辑运算符比较具有不同数据类型的两个数据对象:
<操作员> | 意义 |
EQ | 等于 |
= | 等于 |
NE | 不等于 |
<> | 不等于 |
>< | 不等于 |
LT | 少于 |
< | 少于 |
LE | 小于或等于 |
<= | 小于或等于 |
GT | 比...更棒 |
> | 比...更棒 |
GE | 大于或等于 |
>= | 大于或等于 |
两个操作数必须兼容或可转换。
比较基本数据类型
果操作数兼容,则不进行转换。比较过程如下: 数字字段(I、F 和 P 类型)和数字字符串(N 类型)按其数值进行比较。对于其他数据类型(C、D、T、X),比较从左到右进行。每个字段中不同的左起第一个字符确定哪个操作数更大。文本字段(类型 C)根据底层字符代码进行比较。在日期字段比较(类型 D)中,较新的日期大于较早的日期。在时间字段比较(类型 T)中,较晚的时间大于较早的时间。十六进制字段(类型 X)根据其字节值进行比较。
当您比较具有不同长度但相同数据类型的不兼容操作数时,比较如下: 压缩数字(类型 P)根据其数值进行比较,而不进行转换。对于其他长度不同的类型(C、N、X),较短的操作数在比较前转换为较长的操作数的长度。然后按如下方式填写:字符串(C 型)从右边用空格填充,数字字符串(N 型)从左边用零填充,十六进制字段从右边用十六进制零填充。
DATA: HEX1(3) TYPE X VALUE '34B7A1',
HEX2(1) TYPE X VALUE 'F0'.
IF HEX2 > HEX1.
...
ENDIF.
IF 语句中的逻辑表达式为真,因为 HEX2 的第一个字节大于 HEX1 的第一个字节。