Sélectionnez tous si le paramètre est null dans une procédure stockée

Je veux créer une procédure SQL Server qui permettra de sélectionner et de joindre deux tables. Les paramètres @entreprise, @de et @sont toujours ensemble, mais @serie_type peut être NULL. Si @serie_type n'est pas NULLE, je veux juste inclure les types spécifiés, simple AND S.Type = @serie_type, mais si @serie_type est NUL je veux inclure tous les types, simple, il suffit de ne pas inclure l'instruction ET. Mon problème est que je ne sais pas si @serie_type sera mis donc je voudrais s avoir quelque chose comme ceci:

/* pseudocode */
??? = AND (IF @serie_type IS NOT NULL S.Type = @serie_type)

Ici est un simpifyed version de procédure:

CREATE PROCEDURE Report_CompanySerie
    @company    INT,
    @serie_type INT,
    @from       DATE,
    @to         DATE
AS
BEGIN
    SELECT
        *
    FROM Company C
        JOIN Series S ON S.Company_FK = C.Id
    WHERE C.Id = @company 
        AND S.Created >= @from
        AND S.Created <= @to
/* HERE IS MY PROBLEM */        
        AND ???
END
GO

Ne veux pas dupliquer le sélectionner becaust le réel sélectionnez est plus grand alors ce.

OriginalL'auteur Andreas | 2011-09-22