Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Processing External Data →  ABAP Database Access →  ABAP SQL →  ABAP SQL - Operands and Expressions →  ABAP SQL - SQL Expressions sql_exp →  sql_exp - sql_arith 

SQL expressions, arithmetic calculations

This example demonstrates arithmetic calculations in SQL expressions.

Other versions: 7.31 | 7.40 | 7.54

Source Code

    DATA(rnd) = cl_abap_random_int=>create(
      seed = CONV i( sy-uzeit ) min = 1 max = 100 ).
    DELETE FROM demo_expressions.
    INSERT demo_expressions FROM TABLE @( VALUE #(
      FOR i = 0 UNTIL i > 9
      ( id = |{ i }|
        num1 = rnd->get_next( )
        num2 = rnd->get_next( ) ) ) ).

    DATA(offset) = 10000.
    SELECT id, num1, num2,
           CAST( num1 AS D34N ) / CAST( num2 AS D34N ) AS ratio,
           DIV( num1, num2 ) AS div,
           DIVISION( num1, num2, 2 ) AS division,
           MOD( num1, num2 ) AS mod,
           @offset + ABS( num1 - num2 ) AS sum
           FROM demo_expressions
           ORDER BY sum DESCENDING
           INTO TABLE @DATA(results).

    cl_demo_output=>display( results ).

Description

Calculations are made and functions called in a list of columns specified after SELECT.

  • Integer divisions with the functions DIV, MOD, and DIVISION do not require this update.
  • A host variable is added to the absolute value of a difference between column values.

Using the alias names defined after AS, the results are assigned to the columns with the same names of an internal table declared inline, results. The result of the final calculation are used as a sort criterion.