[SQL] % ne fonctionne pas !?
Résolu
Riwalenn
-
Kisse Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Kisse Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
dans ma table, j'ai fait la requête suivante :
SELECT*
FROM Products
WHERE ProductName IN ('%NV')
j'obtiens juste une ligne vide. Hors si je fais :
SELECT*
FROM Products
WHERE MainGrade IN ('NV')
J'obtiens tout mes produits référencés en NV dans la colonne MainGrade.
Hors moi ce que j'aimerais obtenir c'est les produits dont le nom se termine par NV ou -NV dans la colonne ProductName.
Pourquoi est-ce que mon %NV est refusé ?
merci pour votre aide
dans ma table, j'ai fait la requête suivante :
SELECT*
FROM Products
WHERE ProductName IN ('%NV')
j'obtiens juste une ligne vide. Hors si je fais :
SELECT*
FROM Products
WHERE MainGrade IN ('NV')
J'obtiens tout mes produits référencés en NV dans la colonne MainGrade.
Hors moi ce que j'aimerais obtenir c'est les produits dont le nom se termine par NV ou -NV dans la colonne ProductName.
Pourquoi est-ce que mon %NV est refusé ?
merci pour votre aide
A voir également:
- Commence par sql
- Je commence la nuit et je termine le matin ✓ - Forum Loisirs / Divertissements
- Bonjour je cherche la réponse à la devinette svp ✓ - Forum Loisirs / Divertissements
- Musique qui commence doucement puis accélère - Forum Musique / Radio / Clip
- Logiciel sql - Télécharger - Bases de données
- Excel commence par ✓ - Forum Excel
10 réponses
bien joué Deus ! Merci pour la solution, j'avais pas pensé à LIKE et surtout à ne pas mettre de parenthèse après LIKE... merci encore !
/par contre j'ai une autre question, ça ne fonctionne pas dans le cadre d'une colonne de date. J'ai une colonne qui s'appelle ModifyDate notée : 06/09/2005 16:41: par exemple
comment puis-je faire par exemple pour selectionner tous les champs dont la date correspond à aujourd'hui ?
j'ai essayé avec
SELECT *
FROM nom de la table
WHERE ModifyDate LIKE '06/09/2005%'
ou encore
WHERE ModifyDate IN '06/09/2005%'
ou encore avec les parenthèses avant et après les '
Est-ce que c'est une requête différente pour les dates ?
comment puis-je faire par exemple pour selectionner tous les champs dont la date correspond à aujourd'hui ?
j'ai essayé avec
SELECT *
FROM nom de la table
WHERE ModifyDate LIKE '06/09/2005%'
ou encore
WHERE ModifyDate IN '06/09/2005%'
ou encore avec les parenthèses avant et après les '
Est-ce que c'est une requête différente pour les dates ?
Re,
Voici une solution envisageable. Pour l’exemple j’ai utilisé la DB Northwind
USE Northwind
SELECT * FROm Orders
WHERE Datediff(dd, OrderDate, '07/08/1996') = 0
Mais tu peux aussi regarder la fonction DATEPART,…
Voici une solution envisageable. Pour l’exemple j’ai utilisé la DB Northwind
USE Northwind
SELECT * FROm Orders
WHERE Datediff(dd, OrderDate, '07/08/1996') = 0
Mais tu peux aussi regarder la fonction DATEPART,…
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
oulà ! J'avoue que là tu parles un language que je ne comprends plus... je suis une newbie en SQL moi :)
Ma table s'appelle DeliveryDtls.
la colonne que j'aimerais avoir dans le WHERE c'est ModifyDate et la date 06/09/2005 par exemple. Par contre dans ma colonne ModifyDate, cela se présente sous la forme 06/09/2005:14:15: par exemple et moi j'aimerais sélectionner toute la journée.
J'ai réussi à m'en tirer grâce à une autre colonne mais dans un futur très proche je vais me retrouver vite dans la mouise ;) et donc il faudrait vraiment que je comprenne comment on fait...
ps. j'ai acheté un bouquin que je devrais reçevoir incessament sous peu : celui qui est présenté dans le menu de gauche...
Ma table s'appelle DeliveryDtls.
la colonne que j'aimerais avoir dans le WHERE c'est ModifyDate et la date 06/09/2005 par exemple. Par contre dans ma colonne ModifyDate, cela se présente sous la forme 06/09/2005:14:15: par exemple et moi j'aimerais sélectionner toute la journée.
J'ai réussi à m'en tirer grâce à une autre colonne mais dans un futur très proche je vais me retrouver vite dans la mouise ;) et donc il faudrait vraiment que je comprenne comment on fait...
ps. j'ai acheté un bouquin que je devrais reçevoir incessament sous peu : celui qui est présenté dans le menu de gauche...
format(modifydate;"jjmmaaaa")=format(date;"jjmmaaaa")
ou ent(modifydate)=date
ou modifydate>=date and modifydate<date+1
j'en connais d'autres plus longues
ou ent(modifydate)=date
ou modifydate>=date and modifydate<date+1
j'en connais d'autres plus longues
modifydate>=date : pas de tri
modifydate>=date and modifydate<date+1 : ligne vierge
ent(modifydate)=date : erreur suivante
[MICROSOFT][ODBC SQL Server Driver][SQL Server] 'modifydate' is not a recognized OPTIMIZER LOCK HINTS option
il va de soi que j'ai bien mis les majuscules là où il y en avait.
modifydate>=date and modifydate<date+1 : ligne vierge
ent(modifydate)=date : erreur suivante
[MICROSOFT][ODBC SQL Server Driver][SQL Server] 'modifydate' is not a recognized OPTIMIZER LOCK HINTS option
il va de soi que j'ai bien mis les majuscules là où il y en avait.
Alors dans ton cas précis essaies ça :
SELECT * FROm DeliveryDtls
WHERE Datediff(dd, ModifyDate, '06/09/2005’) = 0
(Attention en fonction de ta configuration il se peut qu’il interprète ‘06/09/2005’ comme le 9 juin donc à toi de jouer avec ça ;)
SELECT * FROm DeliveryDtls
WHERE Datediff(dd, ModifyDate, '06/09/2005’) = 0
(Attention en fonction de ta configuration il se peut qu’il interprète ‘06/09/2005’ comme le 9 juin donc à toi de jouer avec ça ;)
Bonjour ! T'as l'air de maîtriser la fonction LIKE alors une petite question pour toi, cadeau ^^
Je fais des requêtes en SQL sous ACCESS. Mon problème est à peu près le même qu'au dessus : j'ai deux tables A et B qui contiennent des objets dont l'arborescence est définie selon leur code ARBO.
A contient les matériels
B contient les pièces qui constituent les matériels
Je veux afficher les éléments de A qui ont des pièces dans B
exemple : dans A un matériel a un ARBO = 10
dans B toutes les pièces qui commencent par '10' constituent ce matériel (= 100 / 101 / 1000 / 100025 / etc...)
J'ai donc voulu faire une jointure de table du type
SELECT matériel, A.ARBO FROM A, B
WHERE B.ARBO LIKE 'A.ARBO%'
Erreur au niveau de la clause 'A.ARBO%'... j'ai essayé de remplacer "%" par "*", de placer des parenthèses ou des crochets... j'ai pas dû tout tester !?
Merci de me prévenir si tu as une petite idée ;)
Je fais des requêtes en SQL sous ACCESS. Mon problème est à peu près le même qu'au dessus : j'ai deux tables A et B qui contiennent des objets dont l'arborescence est définie selon leur code ARBO.
A contient les matériels
B contient les pièces qui constituent les matériels
Je veux afficher les éléments de A qui ont des pièces dans B
exemple : dans A un matériel a un ARBO = 10
dans B toutes les pièces qui commencent par '10' constituent ce matériel (= 100 / 101 / 1000 / 100025 / etc...)
J'ai donc voulu faire une jointure de table du type
SELECT matériel, A.ARBO FROM A, B
WHERE B.ARBO LIKE 'A.ARBO%'
Erreur au niveau de la clause 'A.ARBO%'... j'ai essayé de remplacer "%" par "*", de placer des parenthèses ou des crochets... j'ai pas dû tout tester !?
Merci de me prévenir si tu as une petite idée ;)
C'est là tout le pb en fait :
Table A :
ARBO / Libellé matériel
10 Chaise
20 Canape
30 Voiture
311 Scooter
Table B :
ARBO / Libellé piece
102 Vis
103 Planche
200 Coussin
2001 Plume
300 Roue
3001 Jante
3002 Pneu
3110 Guidon
Voilà l'idée... lier ces tables en fonction des champs d'ARBO, c'est le seul moyen que j'ai trouvé (les tables sont ici simplifiées pour la compréhension).
Le soucis c'est que les ARBO ne sont pas identiques MAIS un code ARBO de B contient forcément dans ses premiers chiffres un code ARBO complet de A
J'espère que c'est assez clair.. ? Le principal soucis se situe bien au niveau de la jointure
Table A :
ARBO / Libellé matériel
10 Chaise
20 Canape
30 Voiture
311 Scooter
Table B :
ARBO / Libellé piece
102 Vis
103 Planche
200 Coussin
2001 Plume
300 Roue
3001 Jante
3002 Pneu
3110 Guidon
Voilà l'idée... lier ces tables en fonction des champs d'ARBO, c'est le seul moyen que j'ai trouvé (les tables sont ici simplifiées pour la compréhension).
Le soucis c'est que les ARBO ne sont pas identiques MAIS un code ARBO de B contient forcément dans ses premiers chiffres un code ARBO complet de A
J'espère que c'est assez clair.. ? Le principal soucis se situe bien au niveau de la jointure
je pense avoir compris... en gros c'est un truc comme ça que tu veux :
select materiel.tableA,arbo.tableA,
from tableA, tableB
where arbo.tableA like arbo.tableB and arbo.tableA like '3%'
order by arbo.tableA
le seul hic serait en fait de definir le 30% ou un autre chiffre bien entendu...
seulement y'a juste un problème dans notre exemple tu as 2 références commençant par 30 -> voiture et scooter... mais je ne pense pas que le soucis vienne de là...
select materiel.tableA,arbo.tableA,
from tableA, tableB
where arbo.tableA like arbo.tableB and arbo.tableA like '3%'
order by arbo.tableA
le seul hic serait en fait de definir le 30% ou un autre chiffre bien entendu...
seulement y'a juste un problème dans notre exemple tu as 2 références commençant par 30 -> voiture et scooter... mais je ne pense pas que le soucis vienne de là...
La synthaxe exacte est TABLE.CHAMP ;)
Et je pense qu'il sera plus simple de faire les conditions de jointures en VBA que directement sous SQL... tant que je n'ai pas de champ rigoureusement commun entre les deux tables (avec longueur de ARBO variable qui plus est) il n'y a pas de solution adaptée..
Pour scooter j'ai corrigé, c'était une erreur de mettre 301, j'ai remplacé par 311 pour l'exemple.
Merci pour ton aide en tt cas ! Joyeuse semaine
Et je pense qu'il sera plus simple de faire les conditions de jointures en VBA que directement sous SQL... tant que je n'ai pas de champ rigoureusement commun entre les deux tables (avec longueur de ARBO variable qui plus est) il n'y a pas de solution adaptée..
Pour scooter j'ai corrigé, c'était une erreur de mettre 301, j'ai remplacé par 311 pour l'exemple.
Merci pour ton aide en tt cas ! Joyeuse semaine
Grandiose Deus ! l'histoire du mois de juin m'a fait tilt et en effet tu as raison. c'est vraiment très bizarre tu dois faire une recherche style 09/07 pour obtenir la date 07/09 quoi que j'ai oublié que j'ai la version anglaise de windows 2000 donc forcement ça coulait de source...
Merci Deus encore pour ton aide ! Ca m'enlève une épine du pied
Merci Deus encore pour ton aide ! Ca m'enlève une épine du pied