réponse Mise à jour
Il semble donc que @mfr_id est un varchar. Pour éviter le problème syntaxique, utilisez la réponse dans OMG Poneys post.
Mais vous dites aussi qu'il stocke la chaîne "1 2, 3, 4 .....". Sémantiquement, voulez-vous que l'instruction IF soit vraie si elle contient la valeur '5'?
Si oui, vous pourriez avoir besoin quelque chose comme ça
set @mfr_id = REPLACE(@mfr_id, ' ','')
if ((@mfr_id LIKE '5,%') OR (@mfr_id LIKE '%,5,%') OR (@mfr_id LIKE '%,5'))
Réponse originale - Obsolète
if(CONVERT(int, @mfr_id) = 5)
devrait faire l'affaire, espérons. Voir http://msdn.microsoft.com/en-us/library/ms187928.aspx pour plus de détails. Bien qu'en fait je pense qu'il devrait être implicitement converti. Quelle est la valeur de @mfr_id? Cela devrait vous le dire dans le message d'erreur je pense.
Quelle est la variable '@ mfr_id' déclarée? –
@OMG Poneys "@mfr_id est varchar mais son stockage 1 2, 3, 4." De commentaires à ma réponse. –