Skip to content
Advertisement

connect by clause in regex_substr

I cant get the understanding of this statement – not eveN after googling around

Advertisement

Answer

The “abuse” (as Colin ‘t Hart put it) of connected by has a good purpose here: by using REGEXP_SUBSTR you can extract only one of the 4 matches (23,34,45,56): the regex [^,]+ matches any character sequence in the string which does not contain a comma.

If you’ll try running:

you’ll get 23.

and if you’ll try running:

you’ll also get 23 only that now we also set two additional parameters: start looking in position 1 (which is the default), and return the 1st occurrence.

Now lets run:

this time we’ll get 34 (2nd occurrence) and using 3 as the last parameter will return 45 and so on.

The use of recursive connected by along with level makes sure you’ll receive all the relevant results (not necessarily in the original order though!):

will return:

which not only contains all 4 results, but also breaks it into separate rows in the resultset!

If you’ll fiddle with it – it might give you a clearer view of the subject.

User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement