IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[ORACLE] Expression reguliere avec like


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Points : 172
    Points
    172
    Par défaut [ORACLE] Expression reguliere avec like
    Bonjour je cherche a retrouver tous les nom de ma table qui commence par A,B ou C cependant mon expression reguliere ne fonctionne pas .
    J'arrive pas à trouver pourtant ca me semble si basic....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from clients where nom like '[A-C]%'
    Si qqun peut m'aider a trouver ma boulette

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    LIKE n'utilise pas la syntaxe des expressions régulières et n'offre pas les même possibilités. Se référer à la syntaxe officielle pour ne pas faire de mauvaise utilisation.

    Tu peux exprimer ta condition avec des OR :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE NOM LIKE 'A%' OR NOM LIKE 'B%' ...
    Ou utiliser des fonctions de chaines :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE SUBSTR(NOM, 0, 1) IN ('A', 'B', 'C') ;
    Cependant je ne sais pas si l'optimiseur peut utiliser un index sur la deuxième forme. A vérifier.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Points : 172
    Points
    172
    Par défaut
    Pourtant lorsque l'on regarde different site sur les expression reguliere (meme pour oracle) il parle bien des "[" pour representer une "fourchette" de caractere.

    Merci en tt cas pour tes infos !

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Oui mais LIKE n'est pas l'opérateur pour les expressions régulières. C'est REGEXP_LIKE qui a une autre syntaxe (peut être celle que tu mentionnes).

    Toujours se référer à la documentation officielle pour les questions de syntaxe et d'utilisation de son SGBD. Pour essayer 100 façon quand une seule existe et est documentée...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Points : 152
    Points
    152
    Par défaut
    SELECT * FROM clients WHERE regexp_LIKE (nom, '^(A|C)')

    cdt

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 788
    Points
    30 788
    Par défaut
    Dans ton cas, tu peux aussi utiliser cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LIKE ANY ('A%', 'B%', 'C%')
    En revanche, bien qu'elle soit conforme à la norme SQL-2003, je ne sais pas si elle est prise en charge par ton SGBD, que tu n'as pas précisé.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Points : 172
    Points
    172
    Par défaut
    Ah ui merci j'avais oublie de mettre resolu,
    J'ai utilisé les expressions regulieres d'oracle et sa fonctionne nickel

    regexp_LIKE
    Merci!

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Février 2006
    Messages
    139
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2006
    Messages : 139
    Points : 152
    Points
    152
    Par défaut
    Effectivement point important

    les expressions régulières sont apparues avec la 10G.

    Cdt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Expression reguliere avec Regex
    Par Chipsssit dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 08/03/2009, 22h34
  2. expression reguliere avec regex
    Par voyageur dans le forum C#
    Réponses: 4
    Dernier message: 25/03/2008, 15h52
  3. [Bash] Expression reguliere avec expr match
    Par cerede2000 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 19/10/2007, 14h41
  4. [c#][asp.net]expression reguliere avec
    Par zitoun dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/04/2007, 10h15
  5. [langage] Ptit Probleme expression réguliere avec perl
    Par Shoot Again dans le forum Langage
    Réponses: 3
    Dernier message: 02/12/2004, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo