SQL服务器SP:@Param的某些时候为NULL值
问题描述:
我对SQL Server存储过程很陌生, 我想创建一个SP,它将通过StartDate和EndDate通过过滤器返回表中记录的列表,但会有'查看全部'选项,所以有时这些@Param可能不包含任何值。SQL服务器SP:@Param的某些时候为NULL值
目前我的SP是像
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
如何活跃呢?
答
试试这个:
WHERE (StartDateTime <= @StartDate OR @StartDate IS NULL) AND (EndDate >= @EndDate OR @EndDate IS NULL)
希望它能帮助。
/克劳斯
答
你可以尝试这样的事情
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)
注意使用ISNULL
它是什么,我想要的[Status](int here)。 – Posto 2009-12-08 07:40:52