nicky555 написал:
Кстати, как показала практика, условие WHERE с LIKE работает шустрее, нежели с RANGES...

Это очень интересно, потому что оба примера, приведённых ниже, разложатся в абсолютно одинаковые запросы для БД. По крайней мере для Oracle.
Code:
TABLES:
comm_product.
DATA:
gsr_product_id TYPE comt_product_id_range,
gtr_product_id TYPE comt_product_id_range_tab
.
gsr_product_id-sign = 'I'.
gsr_product_id-option = 'CP'.
gsr_product_id-low = '*1'.
APPEND gsr_product_id TO gtr_product_id.
SELECT *
FROM comm_product
WHERE product_id
* LIKE '%1'.
IN gtr_product_id.
ENDSELECT.
Code:
TABLES:
comm_product.
DATA:
gsr_product_id TYPE comt_product_id_range,
gtr_product_id TYPE comt_product_id_range_tab
.
gsr_product_id-sign = 'I'.
gsr_product_id-option = 'CP'.
gsr_product_id-low = '*1'.
APPEND gsr_product_id TO gtr_product_id.
SELECT *
FROM comm_product
WHERE product_id
LIKE '%1'.
* IN gtr_product_id.
ENDSELECT.