|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Robert Pythagore Inscription : janvier 2010 Messages : 23 ![]() |
Bonjour,
Dans une table SAS, j'ai un champ texte pouvant être null, contenir une chaine sur 4 caractères, ou plusieurs chaines séparées par des virgules: Champ ------- AAAA AAAA,BBBB AAAA,BBBB,CCCC,EEEE AAAA,CCCC,EEEE,DDDD,BBBB ZZZZ,VVVV,CCCC,BBBB,DDDD Comment faire pour extraire les enregistrements de la table qui contiennent 'BBBB' et 'CCCC' ? Merci pour votre aide. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
utilise la fonction in
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Robert Pythagore Inscription : janvier 2010 Messages : 23 ![]() |
Merci pour la réponse, mais je vais préciser ma question:
Je dois exclure de ma table les enregistrements qui contiennent la chaine 'BBBB' ou la chaine 'EEEE' ou les 2. Dans l'extrait ci-dessous, le deuxième, troisième et quatrième enregistrements doivent être supprimés. La solution qui consiste à utiliser "NOT IN" comme ne fonctionne pas. Et la solution avec LIKE non plus ne fonctionne pas: Code :
WHERE Champ LIKE ANY ('%BBBB%', '%EEEE%') Champ ------- AAAA AAAA,BBBB AAAA,BBBB,CCCC,EEEE AAAA,CCCC,EEEE,DDDD ZZZZ,VVVV,CCCC,RRRR,DDDD ... Merci. PS: pour la longueur du champ 'LENGTH' en sql fonctionne très bien. |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 143 ![]() |
okay, après relecture, il me semble comprendre que la variable CHAMP prends la valeur AAAA,BBBB mais pas BBBB. C'est bien ca (tu as une seule variable)? dans ces cas la la fonction index semble plus appropriée.
le not in fonctionne bien c'est juste qu'il ne reconnait pas la valeur BBBB, puisqu'elle n'existe pas |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Robert Pythagore Inscription : janvier 2010 Messages : 23 ![]() |
Merci, je vais tester la fonction index et je te dirais.
Mais pour préciser, j'ai une seule variable "Champ" qui prend différentes valeurs:"AAAA" ou "AAAA,BBBB" ou "AAAA,BBBB,CCCC,EEEE" ...etc. Autrement dit, la variable Champ contient soit rien, soit une chaine de 4 lettres, soit plusieures chaines de 4 lettres séparées par des virgules. Ce que je souhaite faire, c'est exclure les champs qui contiennent au moins l'une des valeurs suivantes: 'BBBB' ou 'EEEE'. Si je l'applique à l'extrait ci-dessous, seuls le premier et le dernier enregistrement restent car ils ne contiennent ni 'BBBB' ni 'EEEE'. Champ ------- AAAA AAAA,BBBB AAAA,BBBB,CCCC,EEEE AAAA,CCCC,EEEE,DDDD ZZZZ,VVVV,CCCC,RRRR,DDDD |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Robert Pythagore Inscription : janvier 2010 Messages : 23 ![]() |
Merci Manoutz, la fonction indexc fonctionne effectivement très bien.
Voici la condition qui permet d'exclure les champs contenant au moins l'une des 2 chaines 'BBBB' ou 'EEEE' : Code :
WHERE=(indexc(champ,'BBBB','EEEE')=0); |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com