Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1437 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Compter le nombre de 'a' dans le texte d'un champ

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL] Compter le nombre de 'a' dans le texte d'un champ

n°1444635
ceyquem
E falso sequitur quodlibet
Posté le 19-09-2006 à 14:36:27  profilanswer
 

Bonjour,
 
je cherche à faire une requête SQL qui me renvoie, pour chaque enregistrement d'une table, le nombre d'occurences d'un caractère (ex : "a" ) dans un champ. Par exemple pour la table :
 

id | texte
---+-----------------
 1 | arbre
 2 | canard
 3 | madagascar
 4 | etoile


 
je voudrais récupérer, si je compte les "a" dans le champ texte :
 

id | compter
---+-------------
 1 | 1
 2 | 2
 3 | 4
 4 | 0


 
Une idée ?
 
Merci !

mood
Publicité
Posté le 19-09-2006 à 14:36:27  profilanswer
 

n°1444638
MagicBuzz
Posté le 19-09-2006 à 14:39:11  profilanswer
 

"impossible".
 
plus exactement, via masturbation du bulbe pendant quelques heures ça doit être faisable en SQL pur, mais je te souhaite bien du courage (et vas-y la tambouille... j'ai déjà une idée de comment faire, mais je suis à la limite de l'ancéphalie).
 
tu peux aussi t'orienter vers une PS. ce sera bien plus propre que la solution pourrage que j'ai en tête

n°1444641
MagicBuzz
Posté le 19-09-2006 à 14:41:32  profilanswer
 

en gros, la solution que j'ai en tête...
 
mettons que sur ton SGBD, varchar monte jusqu'à 4000 caractères
 
ça donne :
 
prout <= une table avec ID allant de 1 à 4000 (et pas d'autre champ)
 

Code :
  1. select matable.id, sum(decode(substr(matable.texte, prout.id, 1), 'a', 1, 0))
  2. from prout, matable
  3. where prout.id <= length(matable.texte)
  4. group by matable.id


 
(z'avez le droit de vomir :D)


Message édité par MagicBuzz le 19-09-2006 à 14:43:00
n°1444652
ceyquem
E falso sequitur quodlibet
Posté le 19-09-2006 à 15:01:58  profilanswer
 

ouais, pas top effectivement.
je vais peut être chercher une solution plus élégante quitte à repenser la structure de ma table :)

n°1444654
MagicBuzz
Posté le 19-09-2006 à 15:05:07  profilanswer
 

En tout cas, après test, ça marche :sol:
 

Code :
  1. select pro.codpro, pro.nompro, sum(decode(substr(pro.nompro, wt_multi.nb, 1), 'A', 1, 0))
  2. from wt_multi, pro
  3. where pro.codsoc = 2
  4. and wt_multi.nb <= length(pro.nompro)
  5. group by pro.codpro, pro.nompro


 

CODPRO NOMPRO SUM(DECODE(SUBSTR(PRO.NO
A0001 PRESENTOIR PLIABLE "LE BAIN"   2  
A0002 TABLE OVALE CHARLES II BLANC   4  
A0003 TABLE OVALE JACQ COEUR BLANC   4  
A0004 PRESENTOIR BACCHUS             1  
A0008 TABLE EPICES VRTE THEMES +2ALL 2  
A0010 TABLE OVALE JACQUES COEUR      3  
A0011 TABLE OVALE CHARLES II         3  
A0012 TABLE OVALE RABELAIS           4  
A0013 PRESENTOIR "SENTEURS SAVEURS"  1  
A0016 LIVRE "TABLES DE CHARME"       2  
A0017 LIVRE "CAFE"                   1


Message édité par MagicBuzz le 19-09-2006 à 15:05:53
n°1444663
ceyquem
E falso sequitur quodlibet
Posté le 19-09-2006 à 15:15:35  profilanswer
 

lol


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL] Compter le nombre de 'a' dans le texte d'un champ

 

Sujets relatifs
Pb de raptriement dans excel d'un nombre saisi dans 1 textboxRequete SQL ds Access
Erreur SQL/ASP[Javascript] Accéder à un champ à partir d'une autre page
champ vide dans un datacomboComment compter les click sur un lien en dur
Extraire des adresses email dans un gros fichier texte[IB5/Dynamic SQL/PHP] Récupérer une valeur pointée
[JAVA] Hibernate - requète SQL ALTER TABLEpb de requete SQL (enfin je crois) dans access [résolu]
Plus de sujets relatifs à : [SQL] Compter le nombre de 'a' dans le texte d'un champ


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR