2009-12-03 5 views
0

Je suis très nouveau à SQL Server Stored Procedures, Je suis en train de créer un SP qui va donner une liste d'enregistrements dans une table par le filtre via StartDate et EndDate , mais il y aura l'option 'View All' alors parfois ces @Param pourraient ne contenir aucune valeur.Serveur SQL SP: @Param avec parfois des valeurs NULL

Actuellement, mon SP est comme

CREATE PROCEDURE [dbo].[spGetBonusRun] 
(
@StartDate as DATETIME, 
@EndDate as DATETIME 
) 
AS 

SELECT [Id] 
    ,[StartDateTime] 
    ,[EndDate] 
    ,[Status] 
FROM [Valt].[dbo].[BonusRun] 
WHERE StartDateTime <= @StartDate AND EndDate >= @EndDate 

Comment qu'actif?

Répondre

1

Essayez ceci:

WHERE (StartDateTime <= @StartDate OR @StartDate IS NULL) AND (EndDate >= @EndDate OR @EndDate IS NULL) 

Hope it helps.

/Klaus

+0

Qu'est-ce que je veux pareil avec [Status] (int ici). – Posto

0

Vous pouvez essayer quelque chose comme ça

CREATE PROCEDURE [dbo].[spGetBonusRun] 
(
@StartDate as DATETIME, 
@EndDate as DATETIME 
) 
AS 

SELECT [Id] 
    ,[StartDateTime] 
    ,[EndDate] 
    ,[Status] 
FROM [Valt].[dbo].[BonusRun] 
WHERE StartDateTime <= ISNULL(@StartDate, StartDateTime) 
AND  EndDate >= ISNULL(@EndDate, EndDate) 

Notez l'utilisation de ISNULL

Questions connexes