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.

REPORT demo_int_tables_compare.
DATA: BEGIN OF line,
col1 TYPE i,
col2 TYPE i,
END OF
line.
DATA: itab LIKE TABLE OF line,
jtab LIKE
TABLE OF line.
DO 3 TIMES.
line-col1 = sy-index.
line-col2 = sy-index ** 2.
APPEND line TO itab.
ENDDO.
MOVE itab TO jtab.
line-col1 = 10. line-col2 = 20.
APPEND line TO itab.
IF itab GT jtab.
WRITE / 'ITAB GT JTAB'.
ENDIF.
APPEND line TO jtab.
IF itab EQ jtab.
WRITE / 'ITAB EQ JTAB'.
ENDIF.
line-col1 = 30. line-col2 = 80.
APPEND line TO itab.
IF jtab LE itab.
WRITE / 'JTAB LE ITAB'.
ENDIF.
line-col1 = 50. line-col2 = 60.
APPEND line TO jtab.
IF itab NE jtab.
WRITE / 'ITAB NE JTAB'.
ENDIF.
IF itab LT jtab.
WRITE / 'ITAB LT JTAB'.
ENDIF.
Die Listenausgabe ist:
ITAB GT JTAB
ITAB EQ JTAB
JTAB LE ITAB
ITAB NE JTAB
ITAB LT JTAB
Es werden zwei Standard-Tabellen, itab und jtab, angelegt. itab wird mit drei Zeilen gefüllt und jtab zugewiesen. itab wird eine weitere Zeile hinzugefügt und der erste logische Ausdruck gibt zurück, dass itab größer als jtab ist. Nachdem jtab die gleiche Zeile angehängt wurde, zeigt der zweite logische Ausdruck, dass beide Tabellen gleich sind. Dann wird itab eine weitere Zeile angehängt und der dritte logische Ausdruck zeigt an, dass jtab kleiner gleich itab ist. Dann wird eine weitere Zeile an jtab angehängt, deren Inhalt ungleich dem Inhalt der letzten Zeile von itab ist. Der nächste logische Ausdruck gibt zurück, dass itab ungleich jtab ist. Das erste Tabellenfeld, dessen Inhalt für itab und jtab unterschiedlich ist, ist col1 in der letzten Tabellenzeile, nämlich 30 für itab und 50 für jtab. Im letzten logischen Ausdruck ist daher itab kleiner als jtab.