Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
ab92
Creator II
Creator II

Filtrer et compter les caractères d'une table

Bonjour

j'aimerai figer 5 caractères d'une table qui possède des champs de 1 à 10 caractères, je souhaite donc conserver les champs de 1 à 5 caractères. Ex le nom de ma table = TABLE1 analyse du champ NOMCHAMP1.

J'ai réalisé l'instruction left(champs, 5) as NOMCHAMP1_LEFT et cela me ressort tous les caractères correspondant à 5 chiffres sur ma table.

Mon souci :

Quand je fais un count sur NOMCHAMP1_LEFT il me ressort 19 167 caractères avec l'instruction left.

J'ai voulu vérifié s'il me ressortait le bon nombre total de champ que j'analyse, j'ai donc insérer ce même champ sans instruction left pour ainsi compter le nombre total de champs dans NOMCHAMP1. Il me ressort exactement le même nombre de champ : 19 167

Je dois donc supprimer les données conserver dans mon filtre, j'ai essayer un drop field avec un as pour ainsi garder le filtre ça ne fonctionne pas.

Puis j'ai renommer ma table par : TABLE2: noconcatenate; load* resident TABLE1; drop table TABLE1

Fonctionne toujours pas, avez vous des idées, peut être que j'utilise pas les bonne instruction je dois peut être faire un set dans mon objet de feuille  ?

En vous remerciant de votre aide !

1 Solution

Accepted Solutions
kevinchevrier
Partner - Creator III
Partner - Creator III

Je crois que je viens de comprendre ce que tu veux faire. C'est normal que tu aies toujours autant de champ (19167) car ton instruction dis juste de prendre seulement les 5 premiers caractères. Donc sur 10 caractères, il t'en garde 5. Ton champ est toujours présent...

Si tu veux afficher seulement les champs qui ont une longueur max de 5 caractères, alors il faut jouer avec la fonction len()

=IF(len(champs)<=5,champs)


Kevin

View solution in original post

6 Replies
kevinchevrier
Partner - Creator III
Partner - Creator III

avec la formule len() ?

kevinchevrier
Partner - Creator III
Partner - Creator III

Je ne suis pas sûr de comprendre ce que tu souhaites. Pourrais-tu imager ton propos ?

kevinchevrier
Partner - Creator III
Partner - Creator III

Je crois que je viens de comprendre ce que tu veux faire. C'est normal que tu aies toujours autant de champ (19167) car ton instruction dis juste de prendre seulement les 5 premiers caractères. Donc sur 10 caractères, il t'en garde 5. Ton champ est toujours présent...

Si tu veux afficher seulement les champs qui ont une longueur max de 5 caractères, alors il faut jouer avec la fonction len()

=IF(len(champs)<=5,champs)


Kevin

brunobertels
Master
Master

Bonjour

Si j'ai bien compris ta demande :

j'aimerai figer 5 caractères d'une table qui possède des champs de 1 à 10 caractères, je souhaite donc conserver les champs de 1 à 5 caractères


je ferai ceci :

if(len(NOMCHAMP1)<='5',NOMCHAMP1) as NOMCHAMP1_LEFT,


Bruno



ab92
Creator II
Creator II
Author

Merci Kevin et Bruno pour votre réactivité je mets la réponse de Kevin comme correcte mais celle de Bruno est également juste... Merci pour votre réactivité !

brunobertels
Master
Master

Bonjour

Avec plaisir , l'important c'est que tu aies ta réponse et que tu puisses avancer

Bruno