Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 09h50   #1
Membre à l'essai
 
Inscription : janvier 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 120
Points : 24
Points : 24
Par défaut 10g : exclure une chaîne de caractères

Bonjour,

Je me permets de poster un message sur le forum car j'aurais besoin d'un peu d'aide.

Je suis sous Oracle 10g et je souhaiterais exclure dans l'affichage de mes résultats une partie de la chaine de caractère sachant que celle ci est variable. Je voudrais que celle ci s'arrête dès que l'on trouve la chaine de caractères COD. Je ne vois pas comment jeux peut faire en Sql.

TABLE :

ID | COMMENTAIRE
===============
1 | Server : P.Walcot.COD M-50
2 | Server : Br.Sentenza.COD M-60
3 | Server : Gr.BoileauCOD M-70

Le résultat que je voudrais serait de la forme :

Server : P.Walcot.
Server : Br.Sentenza.
Server : Gr.Boileau


En espérant avoir des réponses.

Merci.
Jarod51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h05   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Il faut combiner les fonctions SUBSTR et INSTR.

Cette dernière permet de rechercher la position d'une chaîne dans une autre, et la première d'extraire une partie de chaîne en précisant position de départ et longueur.

Essayez de trouver par vous-même, proposez-nous vos solutions !
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h15   #3
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Voir aussi du coté des expression régulières (REGEXP) !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h18   #4
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
Citation:
Envoyé par Garuda Voir le message
Voir aussi du coté des expression régulières (REGEXP) !
Je ne suis pas sur que les expressions régulières soient adaptées au besoin, c'est sortir l'artillerie lourde pour ce cas !
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h18   #5
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 459
Points : 10 459
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Ça fonctionnera aussi, mais c'est sortir le bazooka pour tuer un moustique
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h28   #6
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
Envoyé par Garuda Voir le message
Voir aussi du coté des expression régulières (REGEXP) !
C'est juste pour montrer que ca existe aussi, si le besoin se compliquait !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h30   #7
Membre du Club
 
AC
Inscription : octobre 2010
Messages : 28
Détails du profil
Informations personnelles :
Nom : AC
Âge : 43
Localisation : Suisse

Informations forums :
Inscription : octobre 2010
Messages : 28
Points : 48
Points : 48
Vous pouvez également étudier la fonction REPLACE.

Code :
SELECT REPLACE('Server : P.Walcot.COD M-50','COD M-50','') FROM dual;
wahnfried est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h38   #8
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 311
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 311
Points : 5 808
Points : 5 808
@wahnfried
J’ai peur que votre solution n’est pas vraiment adaptée pour ce cas, la partie à remplacer pouvant varier d'une ligne à une autre.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 12h15   #9
Membre à l'essai
 
Inscription : janvier 2006
Messages : 120
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 120
Points : 24
Points : 24
Bonjour à tous,

Merci pour vos réponses.

Je suis parti sur la solution SUBSTR et INSTR qui est opérationnelle. J'y suis arrivé.

PAr contre, mon autre problème c'est que je voudrais faire un count des Id et les regrouper par COMMENTAIRE. Le problème c'est que ça ne marche pas, je n'ai pas de regroupement.

Je mets ma requête ci-dessous :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
SELECT
count (ID) AS "ResId",
substr(RES.CMT,0,instr(RES.CMT,CHR(10))) AS "COMMENTAIRE"
 
FROM
 
RESOURCE RES
 
WHERE
 
regexp_like(RES."CMT", 'Server', 'i')
 
GROUP BY(ID, substr(RES.CMT,0,instr(RES.CMT,CHR(10))) )
ORDER BY
1
Il me sort comme résultat :

ResId | COMMENTAIRE
1 | Server : P.Walcot
1 | Server : P.Walcot
1 | Server : P.Walcot
1 | Server : Br.Sentenza.

au lieu de :

ResId | COMMENTAIRE
3 | Server : P.Walcot
1 | Server : Br.Sentenza.

Auriez vous une idée ??

Merci.
Jarod51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 12h54   #10
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
deja
Code :
1
2
GROUP BY ID, substr(RES.CMT,0,instr(RES.CMT,CHR(10)))
au lieu de
Code :
1
2
GROUP BY(ID, substr(RES.CMT,0,instr(RES.CMT,CHR(10))) )
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 13h34   #11
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 437
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 437
Points : 4 173
Points : 4 173
Ne pas grouper par ID, sinon, il y aura toujours une ligne par ID.
Code :
GROUP BY substr(RES.CMT,0,instr(RES.CMT,CHR(10)))
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/01/2011, 16h02   #12
Membre du Club
 
AC
Inscription : octobre 2010
Messages : 28
Détails du profil
Informations personnelles :
Nom : AC
Âge : 43
Localisation : Suisse

Informations forums :
Inscription : octobre 2010
Messages : 28
Points : 48
Points : 48
Citation:
Envoyé par mnitu Voir le message
@wahnfried
J’ai peur que votre solution n’est pas vraiment adaptée pour ce cas, la partie à remplacer pouvant varier d'une ligne à une autre.
Désolé, j'ai effectivement mal lu le problème de départ.
wahnfried est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h20.


 
 
 
 
Partenaires

Hébergement Web