2 votes

Comment extraire une sous-chaîne d'une chaîne en sybase?

Avec une requête, j'obtiens cette chaîne "Order::Resource(PPP32#BB300320LQ00J#AAAR05504)". Je veux extraire la chaîne avant, entre et après le caractère # comme suit :

id = PPP32

sub_id = BB300320LQ00J

sup_id = AAAR05504

Est-ce que quelqu'un sait comment faire cela ?

3voto

podiluska Points 34522
déclarer @start int, @end int, @secondstring varchar(100)

sélectionner @start = charindex('#',@string)
sélectionner @secondstring = substring(@string, @start+1, len(@string))

sélectionner @end = charindex('#',@secondstring)

sélectionner substring(@string,1, @start-1),
       substring(@string,@start+1,@end-1), 
       substring(@string, @start+@end+1, len(@string)-@end)

3voto

aF. Points 15815

Voici la solution correcte :

déclarer @chaîne varchar(50)
sélectionner @chaîne = 'Order::Resource(PPP32#BB300320LQ00J#AAAR05504)'
déclarer @début int, @fin int, @secondechaîne varchar(100)

sélectionner @début = charindex('#',@chaîne)
sélectionner @secondechaîne = substring(@chaîne, @début+1, len(@chaîne))

sélectionner @fin = charindex('#',@secondechaîne)

sélectionner substring(@chaîne,charindex('(', @chaîne)+1, @début-1-charindex('(', @chaîne)),
       substring(@chaîne,@début+1,@fin-1), 
       substring(@chaîne, @début+@fin+1, len(@chaîne)-(@début+@fin+1))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X