Opérateur Logique [Résolu]

Signaler
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
-
tbbuim1
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
-
Bonjour à tous,

J'ai une question qui peut paraître simple comme ça
mais je ne trouve pas la réponse...

J'aimerais avec un like avoir tous les n° d'un champ à l'exception d'un

exemple :
401, 402, 403, 405, 406, 407, 408, 409  (404 exclu!)

donc ce qu'on pourrait avoir en faisant  :
SELECT * from Table WHERE N° like 40[0-3] or N° like 40[5-9]

Mais j'aimerai faire cela avec 1 seul LIKE
Je ne vois pas comment l'écrire.
Est-ce possible?
Je dois le faire en une fois pour des raisons de programmation, sinon ça me ferait modifier bcp plus de codes que prévu.

Merci de votre aide.
TBBUIM

8 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Forcément vu sous cet angle .....

On en revient donc à l'instruction Like.

Je crois bien que le pattern dans ton cas s'écrirais de la sorte :

SELECT * from Table WHERE N° like '40[^4]%'

ça prend tous le n° commencent par 40...xxxxxxxx sauf 404xxxxxxxxx

A vérifier !

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Ah, pas loin !!!

Normalement ça devrait etre LIKE '40[^47]%'

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Et pourquoi dans ce cas là, ne pas dire directement

SELECT * from Table WHERE N° != 404

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
lol oui merci du conseil, mais c'est plus compliqué que ça...
en fait, je fais un like parce que les n° sont 4062316813 ou 403fezfze12315
ou n'importe. l'important c les 3 chiffrs du début et la plage, je veux pas tout prendre mais uniquement quelque chose de précis, donc ta réponse n'est pas valable dans mon cas.

TBBUIM
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
Merci
TBBUIM
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
Yaurai-t'il un moyen d'exclur 4 et 7 de la sélection?
un truc du genre : 40[^4;7]
TBBUIM
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
J'ai mis 40[^4,7] et ça marche (SQL Server)
En fait [^4-7] c'est de 4 à 7
Et       [^4,7] c'est 4 et 7
EN REVANCHE J'ai un gros probleme :s
Il semble que cela ne marche pas sur des filters!
En effet, lorsque je fais un recordset avec comme source
sql = "select * from table where n° like '40[^4]%'" ça marche...
MAISsi je fais sql "select * from table"> rs.open sql, db_conn,1,3
et que je fais
param = "40[^4]" (mon type n° est en string)
rs.filter = "n° like '" & param & "'%'"
ça ne retourne aucun résultat
alors qu'un param = "401" retourne un résultat

J'ai essayé avec comme recordset 3,3 ou autres, rien n'y fait

TBBUIM
Messages postés
940
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
3 février 2011
7
J'ai fait une faute de frappe le filter est de la forme
rs.filter = "n° like '" & param & "%' "
TBBUIM