J'ai une clause where qui vérifie l'existence de lignes dans une sous-requête, mais je veux seulement exécuter ce contrôle si un bit est à 1. Ainsi, par exemple:SQL Server Où déclaration de cas de clause?
Select * from Listing l
Where
l.IsDeleted=1
AND CASE WHEN @MustHasPicture = 1 THEN
(
EXISTS
(
SELECT NULL AS [EMPTY]
FROM [dbo].[ListingPictures] AS [lp]
INNER JOIN Listing l ON lp.ListingID=l.ID
)
)
ELSE 1 END = 1
Cette syntaxe est erronée, et J'espère que quelqu'un peut me diriger dans la bonne direction. Merci.
Qu'essayez-vous de faire avec la requête? –
Si l'utilisateur passe dans @ MustHavePicture = 1, alors je veux seulement retourner les annonces qui ont une image. Si l'utilisateur passe @ MustHavePicture = 0, alors je veux retourner TOUTES les listes, qu'elles aient ou non des images. – Scott