Requête sql particulière

guadoc Messages postés 70 Date d'inscription   Statut Membre Dernière intervention   -  
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je possède une table "personne" avec les champs suivants:Nom ,Matricule
J'aimerais faire une sélection SQl sur cette table avec le critères suivants: je ne sélectionne que les noms dont le matricule commence par 'N' et est suivis que des chiffres.
Si quelqu'un a une idée du code de la requête SQL?
Je ne sais pas si cela est possible en SQL. Ma base est sous access alors s'il existe une autre solution sous access pour faire cette sélection je suis preneur.
Merci d'avance pour vos contributions.



3 réponses

swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
regarde du coté de la fonction like
Ta requète serait un truc dans le genre :
select * from personne Matricule like ' [Nn][0-9%]'
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Le % à l'intérieur des crochets ne représente que le caractère %... du moins sous SQL Server.

Xavier
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Le % à l'intérieur des crochets ne représente que le caractère %... du moins sous SQL Server.

Xavier
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Le % à l'intérieur des crochets ne représente que le caractère %... du moins sous SQL Server.

Xavier
0
swoog42 Messages postés 1060 Date d'inscription   Statut Membre Dernière intervention   244
 
j'avais un doute, maintenant, je sais... 3 fois mieux
MDR !
Je ne sais pas comment se représente un suit de caractères numériques...


Après recherche, j'ai trouvé ca :
select * from personne Matricule like ' [Nn][0-9]+'
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Pourtant je n'ai cliqué qu'une fois ^^'
Mais il est vrai que ça a ramé, pour me dire au final que ça avait échoué :p
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Honnêtement, je n'ai pas trouvé de façon de dire "qui ne contient que des chiffres après une lettre". Sauf si tu sais par avance combien de chiffre il y a.
Par exemple, s'il y a forcément 8 chiffres, tu peux écrire :
select * from personne where matricule like 'N[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ;

Par contre, on peut facilement dire "qui contient N puis de contient aucune lettre" :
select * from personne where matricule like 'N[0-9]%' AND NOT LIKE 'N%[a-zA-Z]%'

Si il y a des accents ou des caractères spéciaux, il faut les rajouter entre les crochets.
Le [0-9] dans la première clause avant le AND permet de filtrer plus de lignes pour accélérer la requête sur la ligne suivante, qui peut être longue...

Xavier
0
Sir Hicham
 
bonjour,
pour ton problème tu peux utiliser la requête suivante :

------> select * from personne where matricule like 'N%' ;
-2