Bonjour,

Dans une procédure stockée, je voudrais selon qu'un parametre est renseigné ou non que la clause WHERE s'adapte sachant que la clause WHERE contient un IN

J'ai trouvé une fonction qui transforme une chaine en une liste utilisable dans un IN.
L'adresse de la fonction est ici : http://www.devx.com/tips/Tip/20009
La fonction s'appelle dbo.UTILfn_Split

Voici la requete "à ma facon" qui ne marche pas mais qui se rapproche le plus du succès je crois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
SELECT * from MATABLE
WHERE 
CHAMPID IN (
Case 
          When 1=1 then ((select value from dbo.UTILfn_Split ('11,12', ',')))
          else CHAMPID
    end)
Le problème est le message
La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.
Bref, je suis bloqué. Merci de votre aide