SAP Tutorials Blog


 



"The following example uses a left outer join to intentionally create null values. For

"this purpose, two demo database tables of the cheat sheet repository are cleared and

"populated with specific values to visualize null values.

DELETE FROM zdemo_abap_tab1.

DELETE FROM zdemo_abap_tab2.

MODIFY zdemo_abap_tab1 FROM TABLE @( VALUE #( ( key_field = 1 char1 = 'a' char2 = 'y' )

                                              ( key_field = 2 char1 = 'b' char2 = 'z' ) ) ).

MODIFY zdemo_abap_tab2 FROM TABLE @( VALUE #( ( key_field = 1 char1 = 'a' )

                                              ( key_field = 2 char1 = 'a' )

                                              ( key_field = 3 char1 = 'b' )

                                              ( key_field = 4 ) ) ).


"Note that for the entry 'key_field = 4' no char1 value was passed.

"char1 is a shared column of the two database tables, and which is used in

"the ON condition of the join. Since there is no entry in char1 for 'key_field = 4',

"the joined values are null in that case.

"The example visualizes the null values. The INDICATORS addition is used to specify

"indicators such as the null indicator. In the example, an appropriate target table

"is defined to also store information about which columns of the result set contain

"the null value and which do not.

TYPES: BEGIN OF st4null,

         BEGIN OF s2,

           key_field TYPE zdemo_abap_tab2-key_field,

           char2     TYPE zdemo_abap_tab1-char2,

         END OF s2,

         BEGIN OF nulls,

           key_field TYPE c LENGTH 1,

           char2     TYPE c LENGTH 1,

         END OF nulls,

       END OF st4null.

DATA joined_tab_w_null_ind TYPE TABLE OF st4null WITH EMPTY KEY.


SELECT tab2~key_field, tab1~char2

  FROM zdemo_abap_tab2 AS tab2

  LEFT OUTER JOIN zdemo_abap_tab1 AS tab1 ON tab1~char1 = tab2~char1

  INTO TABLE @joined_tab_w_null_ind INDICATORS NULL STRUCTURE nulls.


*Internal table content:  

*S2                      NULLS

*KEY_FIELD    CHAR2      KEY_FIELD    CHAR2

*1            y

*KEY_FIELD    CHAR2      KEY_FIELD    CHAR2

*2            y

*KEY_FIELD    CHAR2      KEY_FIELD    CHAR2

*3            z

*KEY_FIELD    CHAR2      KEY_FIELD    CHAR2

*4                                    X



Serkan AKKAVAK

Computer Engineer BSc

Head of SAP & Software Department

Contact : serkurumsal@yandex.com