Du kan använda ett reguljärt uttryck
with example(str) as (
values('/this/is/a/given/string/test.file')
)
select regexp_replace(str, '(/.*?){4}', '')
from example;
regexp_replace
------------------------
given/string/test.file
(1 row)
eller funktionen string_to_array()
:
select string_agg(word, '/' order by ord)
from example,
unnest(string_to_array(str, '/')) with ordinality as u(word, ord)
where ord > 4;
Läs också Hur du hittar den tredje förekomsten av ett mönster på en linje .