PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir une sous-chaîne à partir de la 4ème occurrence d'un caractère jusqu'à la fin d'une chaîne donnée dans PSQL

Vous pouvez utiliser une expression régulière

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) 

ou la fonction 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;

Lire aussi Comment trouver la 3ème occurrence d'un motif sur une ligne .