J'ai la requête suivante (exécutée dans un sproc):SQL Server 2008 - en ignorant les valeurs nulles
DECLARE @BrandId uniqueidentifier
SELECT * FROM produits p où p.BrandId = @BrandId
Ma question est - quand NULL est passé dans @BrandId la requête (correctement) aucun résultat - est-il un moyen de dire SQL pour retourner toutes lignes lorsque NULL est passé dans @BrandId (sans utiliser beaucoup de Déclarations IF, c'est-à-dire - IF @BrandId IS NULL etc.)? - c'est-à-dire si @BrandId = NULL lorsque 'ignore' cette partie de la clause where. Ci-dessus est un exemple simplifié - la requête réelle est plus longue et a plusieurs variables (comme @BrandId) qui peuvent être passées des valeurs nulles - et le comportement souhaité est pour eux de ne pas limiter les résultats de la requête lorsqu'une valeur nulle est passé.
Merci!
excellent - merci! – db1234
Cette forme est également sujette à un reniflage de paramètres, ce qui peut entraîner des plans exécutifs très médiocres, selon la façon dont la proc est appelée la première fois. http://sqlinthewild.co.za/index.php/2009/09/15/multiple-execution-paths/ – GilaMonster