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 :

[TSQL] calculer le nombre de mot dans une cellule


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut [TSQL] calculer le nombre de mot dans une cellule
    Bonjour à tous,
    Je suis débutant sur SQL serveur. J'ai une table dans laquelle j'ai une colonne "nom". Les cases de cette colonne sont remplis par plusieurs mots (et groupes de mot) séparés par des virgules. Je cherche le moyen de connaitre le nombre de mots existant.

    Un exemple : j'ai dans ma case " tomate, pomme de terre, courgette". j'aimerai une requête qui me réponde "3". j'ai regardé sur le FAQ mais je n'ai rien trouvé.

    Comment faire?
    jespère avoir été à peu près clair merci d'avance

    ps : Dsl pour Mr le modérateur, ma version SQL est 8.00, je sais pas quoi mettre dans l'intitulé

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Bonjour,

    tu as combien de lignes au maximum dans ta table ?

    Parce que je connais bien une méthode pour faire ce que tu demandes, mais un en utilisant des curseurs et au niveau des performances, bien sur c'est affligeant.

    Mais j'ai fait des recherches sur MSSQL2000, et je vois pas d'autre façon de faire :

    1- Ouvrir un curseur sur la colonne de ta table
    2- Compter le nombre de vigules dans la colonne (en utilsant la fonction CHARINDEX et en itérant sur le nombre de caractères)
    3- Vérifier que ni le permier caractère, ni le dernier sont des virgules
    4- Ajouter 1 à ton résultat final pour avoir le nombre de mots

    Dans ton exemple, tu vas trouver 2 virgules, donc 3 mots.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    Alors justement, j'ai regardé l'aide mais je comprend pas la syntaxe des curseurs. peut tu m'expliquer brievement.
    charindex compte le nombre de virgule de toute la colonne? comment faire pour avoir le nombre de virgule par case?

    J'ai au maximum une centaine de ligne donc au niveau performance, ça ne devrait pas être trop contraignant (?!)

    merci d'avance

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    laisse moi le temps d'écrire un bout de code et je reviens vers toi

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    ok pas de pb. merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    Et voilà.

    Attention, ca marche que MSSQL server je crois et encore une fois, si des milliers de lignes, ca va ramer
    Fichiers attachés Fichiers attachés

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    Je viens de tester avec mes données, c'est parfait!!
    Avec mes 100 lignes ça prend 20 secondes donc vraiment pas contraignant, heureusement que j'ai pas plus.

    En tout cas merci beaucoup!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Points : 502
    Points
    502
    Par défaut
    de rien

    mais 20s pour 100 lignes ca fait beaucoup quand même.
    T'a quoi comme bécane ?


    PS : si qq'un a une méthode moins analytique, ca m'interesse car ma "méthode" reste dans l'ordre du bourrin de base

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 70
    Points : 63
    Points
    63
    Par défaut
    non jai craqué, ça met même pas 2 sec en fait. Mais comme je suis stagiaire, je me tape un ordi des années 40, et comme j'ai utilisé Eudora en même temps, ça avait ramé.

    Encore merci

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

Discussions similaires

  1. Compter nombre de mots dans une cellule Excel
    Par nkhalidy dans le forum Excel
    Réponses: 6
    Dernier message: 12/07/2017, 21h12
  2. Réponses: 1
    Dernier message: 15/05/2008, 16h54
  3. Calcul du nombre d'occurences dans une colonne
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/09/2007, 15h11
  4. Réponses: 10
    Dernier message: 31/12/2006, 12h35
  5. Compter nombre de mots dans une chaîne.
    Par xVINCEx dans le forum C++
    Réponses: 22
    Dernier message: 24/11/2004, 13h33

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