Alors peut-être quelqu'un peut me diriger dans la bonne direction de ce qui cause cette erreur? Je me bats avec ça depuis quelques heures et je fais des recherches sur le web, et je n'arrive pas à comprendre ce que je fais de mal ici. Il est inclus dans le cadre d'une procédure stockée, je ne sais pas si cela compte, si je le peux, je peux inclure cela aussi. Les tables et les noms de champs ont été modifiés pour protéger les innocents ... ce qui signifie mon travail. Merci.Une expression de type non-booléen spécifiée dans un contexte où une condition est attendue, près de 'END'
SELECT
/* The fields are here*/
FROM
/* my joins are here */
WHERE
(Table.Field = stuff)
AND
(Table.Field2 = otherstuff)
AND
(Table2.Field3 = someotherstuff)
AND
CASE @param1
WHEN 0 THEN 'Table.Field IS NULL'
WHEN 1 THEN 'Table.Field2 IS NOT NULL'
ELSE ''
END
Merci pour les réponses. Techniquement egrunin était la bonne réponse à cette question, mais OMG Ponies et Mark Byers étaient à peu près la même chose qui manquait juste cette dernière pièce. Merci encore.
La dernière ligne traitant @ param1 n'est pas nécessaire car elle ne touche pas l'ensemble de résultats. Mais il n'y a pas de mal à être explicite. –
@OMG Poneys: Sans ce dernier test, @ param1 = 2 ne renverra-t-il pas toujours 0 enregistrement? – egrunin
Non, en raison des crochets et du mot clé AND –