2017-05-12 2 views
-1

que je tente d'extraire une partie d'une chaîne qui se trouve entre deux caractères, la chaîne ressemble -partie Extrait de chaîne dans SQL qui est entre deux caractères, mais il y a plusieurs des mêmes caractères

EXEMPLE/EXMPL/BOpérations de base/EXEMPLE/Exemple

le texte que je suis en train de passer à une colonne séparée est la 4ème partie du texte entre les 3 et 4 «/» (en gras)

+7

Quels SGBDR utilisez-vous? –

+0

'split_part (the_column, '/', 4)' –

+0

La bonne réponse est spécifique au SGBDR. Répondre à cette question sans savoir ce que RDBMS à utiliser est une pure supposition. –

Répondre

0

Sans connaître le SGBD , Je ne suis pas sûr s'il y a une fonction split intégrée o r pas. SQL Server 2008 R2 ne dispose pas d'une fonction split, donc je le fais de cette façon:

declare @str varchar(max) = 'example/example/bbasic/eXaMpLe/example', @delim char(1) = '/' 

;with vars(id, _start, _end) as 
(
    select 1, cast(1 as bigint), charindex(@delim, @str) 

    union all 

    select id + 1, _end + 1, charindex(@delim, @str, _end + 1) 
    from vars 
    where _end > 0 
) 
select id, cast(substring(@str, _start, case when _end > 0 then _end - _start else len(@str) - _start + 1 end) as varchar(max)) as value 
from vars 
where id = 4 
option (MAXRECURSION 0) 

aide where id = 4 moyens tirer le 4ème élément après le 3ème delimiter /. Ce code SQL renvoie:

id value 
--- -------- 
4 eXaMpLe