Вот еще одно решение, использующее регулярное выражение, полностью в sql.
SELECT regexp_substr('one,two,three','[^,]+', 1, level) abc
FROM dual
CONNECT BY regexp_substr('one,two,three', '[^,]+', 1, level) IS NOT NULL
Вы можете использовать [[:space:]]*
для сопоставления 0 или более пробелов между числом и числом %
:
'[[:space:]]*[0-9]+[[:space:]]*%[[:space:]]*'
См. Демонстрацию регулярных выражений .
Соответствует
[[:space:]]*
- 0 или более пробельных символов [0-9]+
- 1 или более цифр [[:space:]]*
- 0 или более символы пробела %
- символ %
[[:space:]]*
- 0 или более символов пробела Обратите внимание, что ни \d
, ни [1110 ] и \b
могут не поддерживаться, если ваша версия MySQL старше 8.x.