utiliser LIKE avec un champ numérique

utiliser LIKE avec un champ numérique - SQL/NoSQL - Programmation

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.

Reply

Marsh Posté le 27-07-2004 à 17:03:00   

Reply

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


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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...

Reply

Marsh Posté le 27-07-2004 à 17:10:16    

mais tu veux faire quoi ? c'est certainement possible de tranformer en chaine


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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 >...

Reply

Marsh Posté le 27-07-2004 à 17:19:42    

y'a pas des fonctions CAST ou CONVERT ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 27-07-2004 à 17:20:34    

j'ai essayé CAST mais j'arrive pas à bien le placer dans ma requête

Reply

Marsh Posté le 27-07-2004 à 17:22:39    

en SQL Server
 
WHERE foo LIKE '%CAST(idTruc AS varchar)%'


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

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'

Reply

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.

Reply

Marsh Posté le 27-07-2004 à 22:51:07   

Reply

Marsh Posté le 28-07-2004 à 00:35:05    

[:drapo] (trop fatigué ce soir)

Reply

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;

Reply

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" ? :D


Message édité par Arjuna le 28-07-2004 à 14:32:21
Reply

Marsh Posté le 28-07-2004 à 14:38:18    

non, ca veut dire RegExp POSIX :D

Reply

Marsh Posté le 28-07-2004 à 14:49:41    

Ah ok :)
 
Ca marche aussi avec Oracle ? Faut pas un package à la con ? :sweat:
 
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 :/

Reply

Marsh Posté le 28-07-2004 à 15:00:42    

aucune idée :/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed