Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

recherche Requete SQL avec critères d'exclusion et de sélection

3 réponses
Avatar
amphi
Bonjour,
je cherche =E0 contruire une requete SQL qui comporte des crit=E8res de
s=E9lection et d'exclusion sur les m=EAme champs en m=EAme temps... Est-ce
possible ?

Exemple : S=E9lectionner dans une table de noms
tous les "Jean" et exclure les "Jeannot", ou encore
s=E9lectionner tous les "Aude" et exclure tous les "claude", etc

J'ai test=E9 beaucoup de co=F9mbinaisons avec des "not like", "not
exists",
ainsi que des calculs avec prise en compte des longueurs de cha=EEnes,
sans succ=E8s...
Est-il possible de traiter simultan=E9ment "s=E9lectionner" et "exclure"
?
Sinon, comment faire ?
Merci pour votre =E9clairage
un passionn=E9 d'Access multi-possible

3 réponses

Avatar
Raymond [mvp]
Bonjour.

tu dois pouvoir faire ceci:
SELECT table1.*
FROM table1
WHERE (((table1.Valeur) Like "*jean*") AND ((table1.Valeur)<>"jeannot")) OR
(((table1.Valeur) Like "*aude*") AND ((table1.Valeur)<>"claude"));

par exemple !
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"amphi" a écrit dans le message de news:

Bonjour,
je cherche à contruire une requete SQL qui comporte des critères de
sélection et d'exclusion sur les même champs en même temps... Est-ce
possible ?

Exemple : Sélectionner dans une table de noms
tous les "Jean" et exclure les "Jeannot", ou encore
sélectionner tous les "Aude" et exclure tous les "claude", etc

J'ai testé beaucoup de coùmbinaisons avec des "not like", "not
exists",
ainsi que des calculs avec prise en compte des longueurs de chaînes,
sans succès...
Est-il possible de traiter simultanément "sélectionner" et "exclure"
?
Sinon, comment faire ?
Merci pour votre éclairage
un passionné d'Access multi-possible
Avatar
Eric
Bonsoir,

Il me semble que si tu veux les Jean sans les Jeannot et les Aude sans
les Claude, tu cherches des correspondances exactes sur ces noms, mais
que tu souhaites en sélectionner plusieurs. Donc:
SELECT Nom
FROM LaTable
WHERE Nom in("jean","aude"); ' à multiplier à souhait ("jean", "aude",
"pierre", ...)
Cela sélectionnera les jean sans les jeannot ni les jean-pierre, de même
pour Aude sans Claude ni Marie-Aude.
Maintenant, la question que je me pose est la suivante:
Le champ Nom ne contiendrait-il pas et le nom et le prénom ?

Sous réserve d'avoir compris le sens de la question.

Bonjour,
je cherche à contruire une requete SQL qui comporte des critères de
sélection et d'exclusion sur les même champs en même temps... Est-ce
possible ?

Exemple : Sélectionner dans une table de noms
tous les "Jean" et exclure les "Jeannot", ou encore
sélectionner tous les "Aude" et exclure tous les "claude", etc

J'ai testé beaucoup de coùmbinaisons avec des "not like", "not
exists",
ainsi que des calculs avec prise en compte des longueurs de chaînes,
sans succès...
Est-il possible de traiter simultanément "sélectionner" et "exclure"
?
Sinon, comment faire ?
Merci pour votre éclairage
un passionné d'Access multi-possible



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
amphi
Hello,
merci à ceux qui m'ont répondu !
Cependant, si leur suggestion est bonne pour les cas particuliers,
je recherche une solution pour tout nom, et pas seulement pour les
exemples cités.
En fait, je voudrais sur les même champ et dans la même requete
avoir la possibilité de sélectionner d'après un critère
et en même temps d'exclure d'après un autre critère...
a prioro c'est possible, mais dans le cas où le critère de sélection
est un nom
et où le critère d'exclusion est une partie de ce même nom,
ça bloque...
Autre exemple, si je sélectionne les "Laure" et que je ne veux pas les
"Anne-Laure"...

Je recherche une expression générale pour tous les noms quels qu'ils
soient.
J'ai essayé par exemple d'inclure dans l'expression SQL des critères
de sélection
indiquant la longueur -len()- de l'un des critères pour éviter des
noms de longueur différente, mais ça ne marche pas dans tous les cas.
Merci si quelqu'un a une idée
merci encore


Bonsoir,

Il me semble que si tu veux les Jean sans les Jeannot et les Aude sans
les Claude, tu cherches des correspondances exactes sur ces noms, mais
que tu souhaites en sélectionner plusieurs. Donc:
SELECT Nom
FROM LaTable
WHERE Nom in("jean","aude"); ' à multiplier à souhait ("jean", "aude",
"pierre", ...)
Cela sélectionnera les jean sans les jeannot ni les jean-pierre, de m ême
pour Aude sans Claude ni Marie-Aude.
Maintenant, la question que je me pose est la suivante:
Le champ Nom ne contiendrait-il pas et le nom et le prénom ?

Sous réserve d'avoir compris le sens de la question.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl= fr