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

MS SQL Server Discussion :

Filtrer le Nom dans un champs


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Points : 77
    Points
    77
    Par défaut Filtrer le Nom dans un champs
    Salut,

    J'ai une base de données avec des contacts. Ces contacts sont enregistrés avec un champs nom qui contient dans l'ordre : 'Prenom Nom'.

    J'aimerais faire un filtre sur ma table en fonction d'une liste de nom à retenir contenu dans une autre Table.

    Comment puis-je faire ? J'ai penser faire un : monChamp Like (SELECT '%' + Nom FROM TableNom) mais ca marche pas.
    Ensuite je me suis dit, je vais découper selon l'espace qui sépare le prenom du nom mais ca n'est pas possible car j'ai des noms à particules (HERVE DE QQCHOSE) et des prénom avec des espaces (JEAN LUC, JEAN PIERRE, ...) !

    Pouvez-vous m'aider ?
    Merci à tous.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut curseur et like
    salut,

    monChamp Like (SELECT '%' + Nom FROM TableNom) ne fonctionne pas car like attend une valeur scalaire.
    Tu peux lui fournir cette valeur scalaire à partir d'un curseur et d'une variable.
    Ensuite, tu stocke tes resultats dans une table temporaire.

    je te propose cette solution mais je ne l'ai evidemment pas teste. Peut etre qu'il existe une meilleur solution.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Points : 77
    Points
    77
    Par défaut
    Je veux passer par une requête SQL que je lance depuis une application cliente. Donc je ne pense pas que ce soit possible via un curseur.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select charindex(' ',nom,charindex(' ',nom)) from tablenom

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Points : 77
    Points
    77
    Par défaut
    Merci serge0934, mais ta solution ne fonctionne que dans le cas ou j'ai 2 espaces.
    Or si mon contact a comme nom Francois DUPONT alors ta requete renvoie 0. De même si mon contact porte le nom Jean Francois De La Pompignane ca ne marche toujours pas

    Le problème est pas si simple que ca
    Je pense que je vais devoir passer par une fonction SQL Server pour faire l'extraction du Nom de mon champ.

    Je reste à l'écoute,

    Merci.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    c'est sur, si tu peux fais une function

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    create function Get_nom (@myname varchar)
    return varchar
    as
    begin
    declare @thename varchar
    while charindex(' ',@thename)>0
      set @thename=substring(@thenname,charindex(' ',@thename),5000)
     
    return @thename
    end
    mais tu auras le pb des noms composé
    dans Jean Francois De La Pompignane francois fait partie du prénom
    dans Hubert Fontan de Malhesherbe fontan fait partie du nom !!!

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Points : 77
    Points
    77
    Par défaut
    Voilà, j'ai réussi grace à une fonction SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE FUNCTION dbo.ExtraitNom(@Nom Varchar(80)) RETURNS VarChar(80) AS
    BEGIN
    	WHILE CharIndex(' ', @Nom)>0
    		SET @Nom = SUBSTRING(@Nom, CharIndex(' ', @Nom)+1, LEN(@Nom))
    	Return @Nom
    END
    Ensuite j'appelle cette fonction dans ma requête

    J'ai vu la réponse de Serge au moment de ma réponse

    Merci beaucoup

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut bravo.
    c'est bien trouve!

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

Discussions similaires

  1. [AC-2003] Séparer prénom et nom dans des champs différents
    Par castours dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 20/05/2013, 23h59
  2. [XL-2010] TCD : Filtrer des dates dans un champ étiquette lignes ?
    Par Delphineee dans le forum Excel
    Réponses: 1
    Dernier message: 12/04/2013, 13h48
  3. comment inserer 100 noms dans un champ?
    Par monlou dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/03/2010, 00h25
  4. Requete meme nom dans 2 champs
    Par Melanie75020 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/01/2010, 08h37
  5. Obtiention #Nom ? dans un champ de formulaire
    Par steph_p dans le forum IHM
    Réponses: 9
    Dernier message: 05/09/2008, 10h48

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