LibreOffice Base : NOT LIKE

Résolu
CCC94 Messages postés 13 Statut Membre -  
CCC94 Messages postés 13 Statut Membre -
Bonjour.
j'ai une base office. J'ai fais une requête sur le le nom 'FESTIVAL' (décliné sous 3 casse possibles : 'Festival' ou 'festival') DAns 2 champ possible "NOM" et "Fonction" et ça fonctionne. le code SQL est :

SELECT "ID" "ID", "NOM" "NOM", "Fonction" "Fonction" FROM "T-Grand COLLER" WHERE "NOM" LIKE '%FESTIVAL%' OR "NOM" LIKE '%Festival%' OR "NOM" LIKE '%festival%' OR "Fonction" LIKE '%FESTIVAL%' OR "Fonction" LIKE '%Festival%' OR "Fonction" LIKE '%festival%'

Je souhaite faire la requête inverse, trouver les "NOM" dans lesquels n’existe pas le mot Festival (toujours sous les 3 casses) dans les colonnes "NOM" et "Fonction. J'ai tout essayé NO LIKE, NOT IN rien ne marche.
Je suis débutant en SQL; ça ne me parait pas trop compliqué mais je suis depuis plusieurs jours dessus sans rien trouver .... Au secours.... Merci de votre aide....
A voir également:

3 réponses

Utilisateur anonyme
 
Bonjour

Si la nouvelle condition que tu cherches est bien l'inverse de la précédente, au lieu d'utiliser NOT LIKE, le plus logique me semble d'appliquer l'opérateur NOT (tout court) à l'ensemble de ta condition :
SELECT "ID" "ID", "NOM" "NOM", "Fonction" "Fonction"
FROM "T-Grand COLLER" 
WHERE NOT ("NOM" LIKE '%FESTIVAL%' OR "NOM" LIKE '%Festival%' OR "NOM" LIKE '%festival%' OR
 "Fonction" LIKE '%FESTIVAL%' OR "Fonction" LIKE '%Festival%' OR "Fonction" LIKE '%festival%')


Ce qui devrait donner le même résultat que celui de Xavier, mais la démarche me semble plus simple.

Au passage, si tu veux tester exactement une valeur, n'utilise pas LIKE et surtout pas de % dans le LIKE, mais compare simplement avec =.
Et si tu veux tester d'un seul coup toutes les possibilités de casse, convertit tout en majuscules avec UCASE, tu auras un seul test à faire (par champ).
Enfin, il est inutile de mettre des alias égaux aux noms des champs ( "ID" "ID", "NOM" "NOM" ...), on ne voit pas ce que ça apporte.

SELECT "ID", "NOM", "Fonction"
FROM "T-Grand COLLER" 
WHERE NOT ( UCASE("NOM") = 'FESTIVAL' OR UCASE("Fonction") = 'FESTIVAL')
1
CCC94 Messages postés 13 Statut Membre
 
Merci beaucoup, La première me donne mes fiches sans les divers festival.... super.... J'ai beaucoup espéré dans le UCASE mais ça ne donne rien, ça ne tri rien, j'ai toutes les fiches avec ou sans festival.... j'ai cherché, j'ai trouvé aussi toUpperCase() mais ça ne donne pas non plus le résultat escompté.... Merci beaucoup de ton aide.... belle soirée.
0
Utilisateur anonyme
 
Si la seconde ne trie pas correctement, Alors soit tu t'es trompé à la recopier, soit il y a autre chose (peut-être simplement des espaces) autour du mot Festival dans tes champs NOM et Fonction.
Si c'est le cas, il faut utiliser le LIKE, mais ça n'empêche pas d'utiliser le UCASE :
SELECT "ID", "NOM", "Fonction"
FROM "T-Grand COLLER" 
WHERE NOT ( UCASE("NOM") LIKE '%FESTIVAL%' OR UCASE("Fonction") LIKE '%FESTIVAL%')


Bonne soirée
0
CCC94 Messages postés 13 Statut Membre
 
Je recopie par copier/coller, donc peu de chance de faire des erreurs... Yes celle ci fonctionne..... Super bien les UCASE..... super Merci.... Bonne soirée.
0
Reivax962 Messages postés 3742 Statut Membre 1 011
 
Bonjour,

« Ça ne marche pas » n’est pas très clair. Tu as un message d’erreur ? Aucun résultat ? Un résultat différent de ce que tu espérais ?

Xavier
0
CCC94 Messages postés 13 Statut Membre
 
Bonjour,
Le résultat recherché est d'avoir les fiches dans lesquels le mot 'Festival' (écrit festival ou Festival ou FESTIVAL) est absent de la colonne "NOM" et de la colonne "Fonction". Dans tout ce que j'ai fais jusqu’à maintenant, j’obtiens des fiches dans lesquels on retrouve le mot 'festival' dans la colonne "NOM" ou/et la colonne "Fonction" Merci de votre aide, car je suis dessus depuis plusieurs jours.....
0
Reivax962 Messages postés 3742 Statut Membre 1 011
 
Essaie quelque chose comme ça :
SELECT "ID" "ID", "NOM" "NOM", "Fonction" "Fonction"
FROM "T-Grand COLLER"
WHERE "NOM" NOT LIKE '%FESTIVAL%' AND "NOM" NOT LIKE '%Festival%' AND "NOM" NOT LIKE '%festival%'
    AND "Fonction" NOT LIKE '%FESTIVAL%' AND "Fonction" NOT LIKE '%Festival%' AND "Fonction" NOT LIKE '%festival%' 
0
CCC94 Messages postés 13 Statut Membre
 
Merciiiiiii... ça marche..... , J'ai remplacé les AND par des OR et j'ai bien mes fiches sans les divers Festival.... Merci beaucoup.... je ne m'en sortais pas.... très belle soirée.
0