CONNECT BY «предназначен» для навигации по иерархии, например,
select ...
from EMP
start with MGR is null -- ie, the CEO
connect by prior MGR = EMPNO -- ie, link an employee to his manager
но некоторое время назад люди работали, его можно было использовать для пересечения "вымышленной" иерархии,
- понимая, что START WITH является необязательным
- дает условие «всегда верно» для подключения
Так что мы могли бы взять выше и сделать
select ...
from EMP
connect by 1 = 1
и ты будешь "ходить" по иерархии вечно! Итак, мы могли бы преобразовать это в:
select rownum
from dual
connect by 1=1
и получить целые числа 1,2,3, ... до бесконечности. И оттуда мы просто добавляем завершающее условие, например
select rownum
from dual
connect by level <= 10
потому что «уровень» повышается каждый раз, когда мы пересекаем «иерархию»
И если у вас есть целые числа (1,2,3,4 ...), то их можно использовать для поиска в строках, например, «найти 1-й символ, найти 2-й символ» или «найти 1-е слово, найти 2-е слово "и т.д ....
Я сделал видео по теме здесь
https://www.youtube.com/watch?v=UonikfFgEyM