Opérateur Logique

Résolu
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 19 mai 2008 à 17:40
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 25 mai 2008 à 19:27
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 mai 2008 à 18:09
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
25 mai 2008 à 17:10
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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
19 mai 2008 à 17:47
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
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
19 mai 2008 à 17:52
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
20 mai 2008 à 09:42
Merci
TBBUIM
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
25 mai 2008 à 16:23
Yaurai-t'il un moyen d'exclur 4 et 7 de la sélection?
un truc du genre : 40[^4;7]
TBBUIM
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
25 mai 2008 à 19:11
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
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
25 mai 2008 à 19:27
J'ai fait une faute de frappe le filter est de la forme
rs.filter = "n° like '" & param & "%' "
TBBUIM
0
Rejoignez-nous