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 :

Concaténation de colonnes


Sujet :

MS SQL Server

  1. #21
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Points : 473
    Points
    473
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je ne comprends pas pourquoi cela te pose un probleme d'avoir une procedure stockée.
    Ce qui serait plus problematique ce serait d'avoir le resultat en une seule requete;
    dans une procedure au contraire on peut proceder justement et gerer des cas, comme par exemple faire une requete idoine selon les parametres recus voire contruire la requete selon les parametres recus et l'executer en sql dynamique.

  2. #22
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 896
    Points : 53 126
    Points
    53 126
    Billets dans le blog
    6
    Par défaut
    Ce n'est pas parce que vous allez mettre en œuvre une recherche full text que vous aller solutionner votre problème. En effet si quelqu'un à dans la colonne fourre tout les données suivantes :
    "anglais mauvais niveau, français, bon niveau"
    alors votre recherche sur anglais bon niveau sortira cet énergumène.

    Si vous voulez faire des recherches correcte il faut structurer votre base avec un modèle de données adapté.

    Commencez donc par peaufiner votre MCD avant de vous lancer dans des traitements absurdes qui n'ont aucune chance de donner le résultat escompté !
    Et cela ira encore plus vite que du FT.

    par exemple une entité CONNAISSANCE et un lien CONNAISSANCE / CLIENT avec valorisation du lien (bon, moyen, mauvais) et diplôme.

    A +

  3. #23
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2012
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 81
    Points : 145
    Points
    145
    Par défaut
    Bonjour,

    Je pense que vous avez mal interprété mes propos.
    En fait, je n'ai rien contre l'idée de la Store Proc.
    Je trouve tout simplement, comme quelques autres personnes l'ont déjà indiqué, que la recherche full-text serait la meilleure solution pour les besoins en questions.
    De plus, j'avouerais que la concaténation des données me semble de loin la pire des solutions à moi aussi.

    Ma réponse prend donc ici tout son sens dans la mesure où la procédure stockée reste la seule solution possible ici, mais qu'elle reste, à mon goût, certainement moins performante que le Full-Text search.

    Si toutefois j'ai dit une ânerie, je suis ouvert et toute critique ( ou conseil ) constructive me permettra d'effectuer mon travail au mieux

  4. #24
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Points : 473
    Points
    473
    Billets dans le blog
    1
    Par défaut
    @Swiss_GaGGy : mes propos s'adressent a Devlin111 qui a l'air embeté par :
    Je ne dois faire aucune requête dans mon code, tout doit se faire par procédures stockées.
    Sur l'utilisation du full text search (que je ne connais pas) j'ai l'impresion que SQLpro vient de donner un bon contre exemple.

  5. #25
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    "anglais mauvais niveau, français, bon niveau"
    alors votre recherche sur anglais bon niveau sortira cet énergumène.
    Un prédicat CONSTAINS et NEAR ne permettrait t'il pas de répondre à cette problématique ? Ceci dit je suis d'accord avec toi le fulltext n'est pas la solution magique ici ..

    ++

  6. #26
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    La méthode proposée par iberserk (qui pourrait être adaptée avec une vue, et pas une table permanente) me semble de loin la plus naturelle, et probablement la plus efficace.

  7. #27
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Un prédicat CONSTAINS et NEAR ne permettrait t'il pas de répondre à cette problématique ?
    Pas que je sache en 2008... (impossible de préciser l’écart max entre les mots).

    C'est une des avancées 2012...

  8. #28
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Citation Envoyé par iberserk Voir le message
    Pas que je sache en 2008... (impossible de préciser l’écart max entre les mots).

    C'est une des avancées 2012...
    Yes effectivement .. je n'avais pas pris en compte la distance des mots.

    ++

  9. #29
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    La méthode proposée par iberserk (qui pourrait être adaptée avec une vue, et pas une table permanente) me semble de loin la plus naturelle, et probablement la plus efficace.
    Merci de le faire remarquer je pense aussi :-)

    SQLPRO a fait un excellent article (comme d'habitude...) sur la modélisation par méta données ce qui se rapproche (un peu) de ce que je vous proposais.

    http://sqlpro.developpez.com/cours/m...n/metadonnees/

Discussions similaires

  1. concaténer deux colonnes avec séparateur ', '
    Par briceg dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 23/10/2009, 11h33
  2. Concaténer 2 colonnes de 2 tables différentes ?…
    Par Mister Paul dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/10/2008, 11h19
  3. [MySQL] Concaténer plusieurs colonnes d'une table temporaire
    Par kryogen dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 27/08/2008, 10h56
  4. Concaténer une colonne
    Par aigleborgne dans le forum Développement
    Réponses: 3
    Dernier message: 07/05/2008, 15h02
  5. Réponses: 10
    Dernier message: 29/08/2006, 16h47

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