[sql] espace

nicolas -  
 Sliv -
bonjour à tous
je voudrais savoir comment gère ton les espace en sql ( a part le mot like ) voici mon problème j'ai une requête paramétré qui a pour paramètre nom d'entreprise mais cependant les noms d'entreprise sont souvent espacé exemple S N C F
et je voudrais savoir comment géré le fait que certain marque SNCF et d'autre S N C F
merci d'avance du coup de main
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. _goni Messages postés 964 Statut Membre 38
     
    Salut
    Tu code en quel langage ?
    0
    1. nicolas
       
      ba en fait c une application windev parce que les gens saisissent un nom d'entreprise et ce nom sera mis en paramètre j'ai essayé de trouvé la solution avec windev mais j'ai pas trouver alors j'essaye de la trouver en sql
      0
  2. hamza
     
    salut

    SELECT *
    FROM table
    WHERE champ Like "chaine1 chaine2"

    Ou

    SELECT *
    FROM table
    WHERE champ="chaine1 chaine2"

    ca marche a merveille, j'ai tester a Access puisque j'ai pas du SqlServer, mais ca reste le meme langage.

    N.B : verifier que la chaine a verifier existe dans ta table

    Bonne chance.
    0
    1. nicolas
       
      je comprend pas ta solution
      0
    2. hamza > nicolas
       
      je t'ai mis une requete, et tu doit remplacer table par le nom de table et champ par le nom de ton champ et chaine1 ... par la chaine a rechercher , c tout.
      0
    3. nicolas > nicolas
       
      oui mais pourquoi chaine1 chaine2 je comprend pas ca va pas réglé mon problème
      0
    4. hamza > nicolas
       
      non, je vais t'expliquer :

      SELECT *
      FROM table
      WHERE champ Like "S N C F"

      Ou

      SELECT *
      FROM table
      WHERE nom_champ="S N C F"

      je crois que c'est clair .
      0
    5. nicolas > hamza
       
      oui mais ma requête aura un nom de paramètre param_raisonsociale et pas un nom d'entreprise
      ca fera
      select *
      from client
      where nomclient = param_raisonsociale
      0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Je me creuse la tête depuis hier sur ton problème, mais sincèrement, je ne suis pas sûr qu'il y ait une solution correcte...

    Tu peux tenter d'utiliser REPLACE() pour supprimer tous les espaces, mais une société comme "La Redoute" deviendrait "LaRedoute"... Donc ce n'est pas mieux...

    Je ne crois pas qu'il y ait mieux...
    Pour résoudre ton problème, la meilleure possibilité reste, à mon avis, de ne pas laisser les utilisateurs rentrer manuellement la société, mais de leur proposer des sociétés déjà existantes... Et si la leur n'y est vraiment pas, alors oui, ils pourront la créer...

    Xavier
    0
    1. nicolas
       
      ok ba merci beaucoup pour votre aide je vais voir ce que je peux faire
      0
  4. Sliv
     
    ba moi ce que je voudrais c'est que les gens qu'ils tape sncf ou
    s n c f arrive aux même résultat et je vais pas m'amuser avoir comment son écris les nom d'entreprise y en a plus de 20 000 dans la base

    select *
    from client
    where nomclient = param_raisonsociale
    or nomclient =(param_raisonsociale,' ', '')
    0
    1. Sliv
       
      select *
      from client
      where nomclient = param_raisonsociale
      or nomclient =replace(param_raisonsociale,' ', '')
      0