Я хочу поделиться полезным запросом, который преобразует строку с запятыми и разделенный '-' список чисел в эквивалентный расширенный список чисел:
Пример, который преобразует '1,2,3,50-60' в
1
2
3
50
51
...
60
select distinct * from (SELECT (LEVEL - 1) + mini as result FROM (select REGEXP_SUBSTR (value, '[^-]+', 1, 1)mini ,nvl(REGEXP_SUBSTR (value, '[^-]+', 1, 2),0) maxi from (select REGEXP_SUBSTR (value, '[^,]+', 1, level) as value from (select '1,2,3,50-60' value from dual) connect by level <= length(regexp_replace(value,'[^,]*'))+1)) CONNECT BY Level <= (maxi-mini+1)) order by 1 asc;
Вы можете использовать его как представление и параметризовать строку '1,2,3,50-60'