Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing Internal Data →  Internal Tables →  Processing Statements for Internal Tables →  SORT itab 

Sorting Internal Tables Alphabetically

This example demonstrates the alphabetical sorting of character strings.

Other versions: 7.31 | 7.40 | 7.54

Source Code

    DATA: BEGIN OF line,
            text(6) TYPE c,
            xtext TYPE xstring,
          END OF line.

    DATA itab LIKE HASHED TABLE OF line WITH UNIQUE KEY text.

    DATA(out) = cl_demo_output=>new( ).

    line-text = 'Muller'(001).
    CONVERT TEXT line-text INTO SORTABLE CODE line-xtext.
    INSERT line INTO TABLE itab.

    line-text = 'M�ller'(002).
    CONVERT TEXT line-text INTO SORTABLE CODE line-xtext.
    INSERT line INTO TABLE itab.

    line-text = 'Moller'(003).
    CONVERT TEXT line-text INTO SORTABLE CODE line-xtext.
    INSERT line INTO TABLE itab.

    line-text = 'Miller'(004).
    CONVERT TEXT line-text INTO SORTABLE CODE line-xtext.
    INSERT line INTO TABLE itab.

    SORT itab.
    out->write_data( itab ).

    SORT itab BY xtext.
    out->write_data( itab ).

    SORT itab AS TEXT.
    out->write_data( itab ).

    out->display( ).

Description

The table itab contains a column with text fields and a column with corresponding, country-specific, binary characters that can be sorted and have been created, through conversion, in a sortable format. The table is sorted three times. First, a binary search on the key field text, then a binary search on the xtext field and finally, alphabetically on the key field text.

In the first sort 'Möller' comes after 'Muller', because the internal representation of 'ö' comes after the representation for 'u'. Both the other sorts are alphabetic. The binary sort on xtext has the same result as an alphabetic sort on the field text.