Patients qui n'habite pas lausanne SQL

edimo -  
 edimo -
Bonjour,

j ai un schema concernant une clinique et une partie concernant les patients. la question étant de savoir quels patients n'habitent pas lausanne. le problème est qu il y a aussi plusieurs code postaux comptant comme lausanne c est a dire le 1000,1003,1005 et 1018.

J ai essayer
SELECT Nom
FROM Patient(nom du tableau pour les patients)
WHERE Adresse NOT IN ('1000 Lausanne','1003 Lausanne','1005 Lausanne','Lausanne 1018')

Précision: exercice pour un cours d informatique, donc le schéma est deja fait donc il est possible que je me goure la dessus, mais je crois que c est plutôt 'l'ortographie' SQL qui m echappe un peu...

Merci pour toute aide et bonne journée!
A voir également:

2 réponses

J'ai oublié mon nick
 
salut
pourquoi pas

SELECT Nom
FROM Patient
WHERE upper(Adresse) NOT like '%LAUSANNE%'

parce que l'idéal aurait quand même été de disposer d'une colonne code postal et d'une colonne Ville
mais tu vas me dire que ça aurait été trop simple...

a+
0
swed
 
Bonjour,

"Pourquoi pas ?"
-> Parce que si le patient habite une ville appelée "LAUSANNELLE", il sera récupéré aussi.

On pourrait modifier le LIKE comme ca, ce serait déjà mieux :
SELECT Nom
FROM Patient
WHERE upper(Adresse) NOT like '% LAUSANNE'

Mais, ca ne fonctionnera pas si le patient habite une ville appelée "TARTE SOUS LOSANNE"...

Le mieux est donc de tester l'égalité en enlevant les 6 premiers caractères de la chaine :
SELECT Nom
FROM Patient
WHERE RIGHT(UPPER(Adresse), LEN(Adresse) - 6) = 'LAUSANNE'

(Jai pas testé mais ca doit être correct).

Mais effectivement, séparer le code postal et la ville serait le mieux...
0
edimo
 
Bonsoir,

je vous remercie beaucoup pour votre aide! Après pas mal de temps passer à chercher ma réponse sur internet ou dans des livres j'ai découvert qu'il fallait utiliser l'ordre NOT LIKE '%Lausanne'.

Encore une fois merci, je sais que si j ai encore des questions sympa de mon cours d'informatique je viendrai les poser içi :)

Bonne soirée!
0