Für Vergleiche zwischen Operanden
beliebiger Datentypen stehen in ABAP die Operatoren:
=, <>, <, >, <=, >= bzw. deren
Äquivalente EQ, NE, LT, GT, LE, GE zur Verfügung. Es
wird stets empfohlen entweder nur die mathematischen Symbole oder nur die
entsprechenden Buchstabenkürzel zu verwenden. Auf welche Art der Vergleich der Inhalte erfolgt,
richtet sich nach den Datentypen der Operanden.
Bei Vergleichen zwischen Operanden elementarer Datentypen ist zu unterscheiden, ob die Datentypen kompatibel sind oder nicht:
· bei kompatiblen elementaren Datentypen wird der Inhalt ohne vorherige Konvertierung verglichen
· bei inkompatiblen elementaren Datentypen wird der Inhalt der Operanden zunächst nach bestimmten Regeln konvertiert und erst danach verglichen
Die zugehörigen Konvertierungsregeln sowie weitere Details zu den Regeln nach welchen Operanden elementarer Datentypen in ABAP verglichen werden, finden Sie in der Schlüsselwortdokumentation.

DATA:
hex1(3) TYPE x VALUE '34B7A1',
hex2(1) TYPE x VALUE 'F0'.
IF hex2 >
hex1.
...
ENDIF.
Der logische Ausdruck in der IF-Anweisung ist wahr, da das erste Byte von hex2 größer als das erste Byte von hex1 ist.

DATA: num(4) TYPE n VALUE '1234',
text(5) TYPE c VALUE
'567.8'.
IF num >
text.
...
ENDIF.
Der logische Ausdruck in der IF-Anweisung ist wahr, da nach der Konvertierung in gepackte Zahlen der Wert von num größer als der Wert von text ist. Wenn num vom Typ c wäre, wäre der logische Ausdruck dagegen falsch, da dann nicht in gepackte Zahlen konvertiert wird.
Beim Vergleich kompatibler oder konvertibler Referenzvariablen in ABAP Objects sind nur die Operatoren für 'gleich' (EQ, =) und 'ungleich' (NE, <>, ><) sinnvoll. Der Vergleich mit 'gleich' ist wahr, wenn beide Referenzvariablen Referenzen auf das gleiche Objekt enthalten, und falsch, falls sie Referenzen auf unterschiedliche Objekte enthalten. Für 'ungleich' gilt das entsprechend umgekehrt.

INTERFACE i1.
...
ENDINTERFACE.
CLASS c1 DEFINITION.
PUBLIC SECTION.
INTERFACES i1.
...
ENDCLASS.
DATA: r1 TYPE REF TO i1,
r2 TYPE REF TO c1.
CREATE OBJECT r2.
r1 = r2.
IF r1 =
r2.
...
ENDIF.
Der logische Ausdruck in der IF-Anweisung ist wahr, da beide Referenzen auf das gleiche Objekt zeigen.
Kompatible Strukturen werden in ihre elementaren Bestandteile aufgelöst und diese werden verglichen. Zwei Strukturen sind gleich, wenn alle elementaren Bestandteile gleich sind. Bei ungleichen Strukturen entscheidet das erste ungleiche Element, welche Struktur größer oder kleiner ist.

DATA: BEGIN OF struct1,
col1 TYPE i VALUE 1,
col2 TYPE p DECIMALS 2 VALUE
'56.78',
END OF struct1.
DATA: BEGIN OF struct2,
comp1 TYPE i VALUE 10,
comp2 TYPE p DECIMALS 2 VALUE
'12.34',
END OF struct2.
IF struct1
< struct2.
...
ENDIF.
Der logische Ausdruck in der IF-Anweisung ist wahr, da der Wert der ersten Komponente von struct1 kleiner als der Wert der zweiten Komponente ist.
Beim Vergleich inkompatibler Strukturen oder beim Vergleich zwischen Strukturen und elementaren Feldern, werden die beteiligten Strukturen vor dem Vergleich in Felder vom Typ c konvertiert und dann wie elementare Felder behandelt.

DATA: BEGIN OF struct,
col1(5) TYPE c VALUE
'12345',
col2(5) TYPE n VALUE
'12345',
END OF struct.
DATA text(10) TYPE c VALUE '1234512345'.
IF struct =
text.
...
ENDIF.
Der logische Ausdruck in der IF-Anweisung ist wahr, da die Struktur struct nach der Konvertierung in ein Feld vom Typ c den gleichen Inhalt wie das Feld text hat.
Wie alle Datenobjekte können interne Tabellen als Operanden logischer Ausdrücke eingesetzt werden.
Bei Tabellen mit Kopfzeile ist zu beachten, dass Kopfzeile und Tabellenkörper den gleichen Namen haben. Um nicht die Kopfzeile, sondern die Tabelle selbst bei einem Vergleich anzusprechen, müssen hinter dem Namen zwei eckige Klammern ([]) angehängt werden.