utiliser LIKE avec un champ numérique - SQL/NoSQL - Programmation
Marsh Posté le 27-07-2004 à 17:03:56
non effet. tu peux utiliser >, >=, == mais pas de like
je m'étonne que tu pose cette question. ça n'a pas de sens avec LIKE '%%' avec un numérique
Marsh Posté le 27-07-2004 à 17:08:14
il n'y a pas moyen de transformer les champs en string avec une méthode de postgres ?
parce que les < et > c'est galère...
Marsh Posté le 27-07-2004 à 17:10:16
mais tu veux faire quoi ? c'est certainement possible de tranformer en chaine
Marsh Posté le 27-07-2004 à 17:17:23
en faite j'ai une zone de texte où l'utilisateur rentre une référence avec une liste en dessous avec toutes les réf dispo,
et au fur et à mesure que tu rentre ta référence ba la liste diminue en ne gardant que les références ayant les chiffres entré dans la zone de texte.
çà affine la liste des références possibles en gros.
mais vu que $Vdeb (la valeur de la zone de texte) change au fur et à mesure c'est chaud de gérer les < et >...
Marsh Posté le 27-07-2004 à 17:19:42
y'a pas des fonctions CAST ou CONVERT ?
Marsh Posté le 27-07-2004 à 17:20:34
j'ai essayé CAST mais j'arrive pas à bien le placer dans ma requête
Marsh Posté le 27-07-2004 à 17:22:39
en SQL Server
WHERE foo LIKE '%CAST(idTruc AS varchar)%'
Marsh Posté le 27-07-2004 à 17:28:29
çà ne change rien car c'est le champ qu'il faut CASTer
mais WHERE CAST(foo AS varchar) LIKE '%CAST(idTruc AS varchar)%' me donne l'erreur suivante :
ERROR: Cannot cast type 'numeric' to 'character varying'
Marsh Posté le 27-07-2004 à 22:51:07
Essaie de caster vers un CHAR.
Si ca merde toujours, en te basant sur le nombre de chiffres maximums autorisés par ton type numérique, cast en CHAR(X) avec X = nombre max de chiffres.
Marsh Posté le 28-07-2004 à 12:15:20
voila, quand on est réveillé ca va tout de suite mieux:
SELECT reference FROM photo where reference ~ '$Vdeb.*' ORDER BY reference ASC;
Marsh Posté le 28-07-2004 à 14:32:11
C'est quoi ce signe ? "~"
Ca veut dire "à peut près égal mais pas tout à fait" ?
Marsh Posté le 28-07-2004 à 14:49:41
Ah ok
Ca marche aussi avec Oracle ? Faut pas un package à la con ?
je demande ça parceque j'ai un parseur à écrire en PL/SQL, un truc de malade pour transcrire une table gérée par un programme d'autiste en données lisibles
Marsh Posté le 27-07-2004 à 17:03:00
La requête suivante :
SELECT reference FROM photo where reference LIKE '$Vdeb%' ORDER BY reference ASC;
me renvoie cette erreur :
ERROR: Unable to identify an operator '~~' for types 'numeric' and 'unknown' You will have to retype this query using an explicit cast
apparemment ce n'est pas possible d'utiliser like avec un champ numérique.
Donc ma question c'est : Existe-t-il une autre méthode du genre LIKE mais qui marche avec un champ numérique ??? (ma BD postgres)
Merci.