Falsche syntax bei das Schlüsselwort 'IF'
Ich versuchte IF
..ELSE
im WHERE
Klausel als unten, aber immer Fehlermeldung
"Falsche syntax bei das Schlüsselwort 'IF'. Falsche syntax in der Nähe von ')'."
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
)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können eine
IF
innerhalb einer untergeordneten select-Anweisung in dieser Weise. Verwenden Sie stattdessen einAND
zu testen, wird der Wert der Variablen@categoryID
imWHERE
- Klausel. Dies erfordert zwei()
Gruppen mit einem logischenOR
zwischen Ihnen.Können Sie nicht setzen eine
if
in der Mitte einer SQL-Anweisung ähnlich. Es gibt ein paar Möglichkeiten, dies zu erreichen: