pb sql-serveur et clause in

pb sql-serveur et clause in - SQL/NoSQL - Programmation

Marsh Posté le 30-01-2004 à 20:48:03    

salut, voilà ma requête :
select * from grilles_items gi
  left join groupes g on g.record_id = gi.groupes_id
  left join criteres c on c.groupes_id = g.record_id
    and c.record_id in (case g.types_groupe_id when 3 then gi.valeur end)
      where gi.grilles_id = 677
 
g.types_groupes peut soit être du texte normal soit des nombres séparés par des virgules donc pour un in pas de pb mais visiblement ca lui en pose un car il me sort qu'il ne peut pas transformer la valeur '489, 493' vers une colonne de type int ...
 
pourtant ce sont bien des entiers séparés par virgules et la clause est 'in' donc tout devrait marcher.
 
j'ai cherché une fonction de type 'eval' ou équivalent en t-sql, mais pas moyen de mettre la main dessus ...
 
une solution ?

Reply

Marsh Posté le 30-01-2004 à 20:48:03   

Reply

Marsh Posté le 31-01-2004 à 00:00:23    

si c'est un champ, le SGBD prend sa valeur pour une valeur unique, pas pour une liste.
 
Ton truc ça reviens à faire :
 
in ('3, 2, 4, 5')
 
et non pas :
 
in (3, 2, 4, 5)

Reply

Marsh Posté le 31-01-2004 à 04:32:26    

le pb c'est que  'in  (3,5,6,7)' marche
mais 'in champ' avec champ = (3,5,6,7) marche pas ..


Message édité par bill_clinton le 31-01-2004 à 04:32:49
Reply

Marsh Posté le 31-01-2004 à 11:09:01    

ben oui, et tu peux pas faire autrement.

Reply

Sujets relatifs:

Leave a Replay

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