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

Requêtes et SQL. Discussion :

Requête avec filtre sur caractère # [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut Requête avec filtre sur caractère #
    Bonjour,

    J'ai une table avec un champ référence au format texte.
    Je désire faire une requête pour trouver toutes les références contenant un dièse (#).

    J'ai donc mis le critère suivant :

    Par contre ça ne marche pas, il me sort également plein d'autres références qui ne contiennent pas de #.

    Quelqu'un peut-il m'aider ?

    Merci
    A+
    Damsmut

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Cela m'étonne, je n'ai pas souvenir qu'il y ait un comportement particulier avec le #.
    Es-tu sur que le problème n'est pas lié au reste de ta requête (une erreur dans l'imbrication d'autres éventuels critères par exemple)? Donne le code SQL complet de ta requête pour voir...

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    et voilà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [T-Table].[Ref]
    FROM [T-Table]
    WHERE ((([T-Table].[Ref]) Like "*#*"));

  4. #4
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    En effet, cela ne marche pas! il doit y avoir une interprétation particulière du dièse qui ne me vient pas à l'esprit (quelqu'un voit de quoi il s'agit ?) et je n'ai pas trouvé de syntaxe pour lui faire considérer un caractère standard.


    En attendant, tu devrais pouvoir contourner le problème comme ceci (pas très joli mais bon... ça marche ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT [T-Table].[Ref]
    FROM [T-Table]
    Replace([Ref],"#","[DIESE]") Like "*[DIESE]*"

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut
    ok merci... entre temps j'avais déjà trouvé la même solution que toi

    Voici ce que j'ai lu par ailleurs :
    Le caractère « dièse » sert à mettre une ligne en commentaire, attention donc de ne pas en mettre dans des requêtes, certains SGBD les interprêtant au pied de la lettre, vos requêtes seraient coupées nettes !

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    # est comme ? mais limité aux caractères 0 à 9.
    C'est propre au moteur Jet et VB, je crois.
    Utilisation de caractères génériques dans les comparaisons de chaînes

    Si on recherche un des caractères générique, on le met entre crochets droits.
    Exemples :
    Code Contient le caractère * : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*[*]*"
    Code Contient le caractère ? : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*[?]*"
    Code Contient le caractère # : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*[#]*"
    A+

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 622
    Points : 156
    Points
    156
    Par défaut


    MERCI !!

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Enfin, commençant par, ce n'est pas *X mais X*

    *X : se terminant par X
    X* : commançant par X

  9. #9
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par LedZeppII Voir le message
    Bonsoir,

    # est comme ? mais limité aux caractères 0 à 9.
    C'est propre au moteur Jet et VB, je crois.
    Utilisation de caractères génériques dans les comparaisons de chaînes

    Si on recherche un des caractères générique, on le met entre crochets droits.
    Exemples :
    Code Contient le caractère * : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*[*]*"
    Code Contient le caractère ? : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*[?]*"
    Code Contient le caractère # : Sélectionner tout - Visualiser dans une fenêtre à part
    Comme "*[#]*"
    A+

    Je me disais bien que je passais à coté de quelque chose , merci LedZeppII

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/04/2016, 18h36
  2. Requête Update avec filtre sur un enregistrement précis.
    Par Chagui dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 21/10/2010, 08h29
  3. [MySQL] requête sur 2 tables avec filtre sur date
    Par pp_le_moko dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/02/2010, 14h13
  4. Requete avec filtre sur un champ
    Par podz dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/02/2005, 14h37
  5. [Sybase] filtre sur caractères spéciaux
    Par montelieri dans le forum Sybase
    Réponses: 4
    Dernier message: 07/04/2003, 16h49

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