Use decimal in where clause in SAP ABAP

When working with decimal values in SAP ABAP WHERE clauses, you might encounter issues if you try to use locale-specific decimal separators. ABAP does not support user-specific regional settings for decimal notation in SQL queries. You must always use the standard dot (.) as the decimal separator instead of comma (,) or other regional separators.

Using Decimal Values in WHERE Clause

The correct syntax requires using a dot (.) as the decimal separator, regardless of your system's regional settings. Here's the proper approach −

SELECT * FROM <table> INTO <index_tab>
WHERE amount = 10.15

Complete Example

Here's a more complete example showing how to use decimal values in a WHERE clause −

DATA: lt_sales TYPE TABLE OF sflight,
      ls_sales TYPE sflight.

SELECT * FROM sflight INTO TABLE lt_sales
WHERE price = 422.94.

LOOP AT lt_sales INTO ls_sales.
  WRITE: / ls_sales-carrid, ls_sales-connid, ls_sales-price.
ENDLOOP.

Important Notes

Incorrect Usage: Using comma as decimal separator will cause syntax errors −

" This will NOT work
SELECT * FROM sflight INTO TABLE lt_sales
WHERE price = 422,94.  " Syntax error

Correct Usage: Always use dot notation for decimal values in ABAP SQL statements, ensuring compatibility across different regional settings and preventing runtime errors.

Updated on: 2026-03-13T20:47:40+05:30

262 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements