Syntaxe incorrecte près du mot clé 'SI'
Je suis en train de mettre IF
..ELSE
dans WHERE
clause ci-dessous, mais se message d'erreur
"Syntaxe incorrecte près du mot clé 'SI'. Syntaxe incorrecte près de ')'."
DECLARE @categoryID int
SET @categoryID = 0
SELECT * from SE_Auctions
WHERE ItemCategoryID IN
(
IF @categoryID = 0
SELECT CategoryID from SE_ItemCategory
ELSE
SELECT CategoryID from SE_ItemCategory
WHERE ParentID = @categoryID
OR CategoryID = @categoryID
)
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser un
IF
à l'intérieur d'une sous-sélection de cette manière. Au lieu de cela, utilisez unAND
pour tester la valeur de la variable@categoryID
dans leWHERE
clause. Il faudra pour cela deux()
groupes avec une logiqueOR
entre eux.Vous ne pouvez pas mettre un
if
au milieu d'une instruction SQL comme ça. Il ya un couple de façons de le faire: