J'essaie d'exécuter une requête sur une table dans ma base de données SQL Server 2008. J'ai une procédure stockée qui utilise cinq paramètres int. Actuellement, mes paramètres sont définis comme suit:Clauses WHERE conditionnelles dans SQL Server 2008
@memberType int,
@color int,
@preference int,
@groupNumber int,
@departmentNumber int
Cette procédure sera transmise -1 ou plus pour chaque paramètre. Une valeur de -1 signifie que la clause WHERE ne doit pas prendre en compte ce paramètre dans la jointure/clause. Si la valeur du paramètre est supérieure à -1, je dois considérer la valeur dans ma clause WHERE. Je préférerais NE PAS utiliser une instruction IF-ELSE parce que cela semble négligé dans ce cas.
J'ai vu cette question here. Cependant, cela n'a pas fonctionné pour moi. Je pense que la raison en est que chacune des colonnes de ma table peut avoir une valeur NULL. Quelqu'un a pointé ce scénario dans la cinquième réponse. Cela semble m'arriver.
Y a-t-il une approche délicate à ma question? Ou dois-je juste besoin de la force brutale (je l'espère :()
Merci
Est-ce plus rapide que d'utiliser 'COALESCE' (pour le cas NULL)? – crush