|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : septembre 2008 Messages : 40 ![]() |
Bonjour,
J'aimerais savoir, en SQL, comment faire une extraction d'une sous-chaîne qui commencerait soit par BDRJ soit par BDRH. Pour l'instant, j'ai fait une bidouille avec un instr qui calcule la position du 'B', puis un autre instr qui calcule la position de l'espace qui suit ma sous-chaîne, et enfin je fais un substr à partir du 'B' sur une longueur = rés de l'instr de l'espace - rés de l'instr du 'B'. Compliqué n'est-ce-pas ? Je suis sûr qu'il y a une solution plus simple. Qqn a-t-il une idée ? Merci. David |
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#3 |
![]() ![]() |
Quel est votre SGBD (apparemment Oracle, c'est pour être sûr) ?
Avez-vous quelques exemples concrets pour illustrer votre besoin ?
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : septembre 2008 Messages : 40 ![]() |
Il s'agit d'Oracle.
Voilà par exemple le type de chaîne que j'ai : BDR- BDRJBLUS session incidented - on server bdrprdap01 C'est donc la sous-chaîne BDRJBLUS que je voudrais extraire. Mais comme je disais précédemment, la sous-chaîne pourrait très bien être BDRHBLUS à la place. J'avais donc pensé aussi à utiliser un LIKE mais le souci c'est que ne veux pas extraire plus que BDRJBLUS (pas le reste de la chaîne). C'est pourquoi j'avais pensé à SUBSTR et INSTR mais je n'arrive pas à les utiliser simplement : select substr(summary,instr(summary,' ',1,1),instr(summary,' ',1,2) - instr(summary,' ',1,1)) |
|
|
00
|
|
|
#5 |
![]() ![]() |
Quelle version ? Les 10g+ permettent l'emploi des expressions régulières.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Quelque chose comme ça si vous avez la 10g
Code :
|
||
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : septembre 2008 Messages : 40 ![]() |
Merci pour votre réponse, c'est parfait !
Je vais à présent chercher à comprendre comment utiliser à fond les PATTERN. C'est une bonne trouvaille. Bonne soirée. Je ferme la discussion. |
|
|
00
|
|
|
#8 |
|
Futur Membre du Club
![]() Inscription : septembre 2008 Messages : 40 ![]() |
et si mes sous-chaînes peuvent aussi se terminer par des chiffres ?
désolé mais je ne connaîs rien aux regular expressions. je suis en train de regarder sur ce site qui m'a l'air très bien : http://www.sqlsnippets.com/en/topic-11741.html néanmoins tte info est bonne à prendre ! |
|
|
00
|
|
|
#9 |
![]() ![]() |
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com