SQL-сервер SP: @Param с иногда значениями NULL - PullRequest
0 голосов
/ 03 декабря 2009

Я очень новичок в хранимых процедурах SQL Server, Я пытаюсь создать SP, который будет возвращать список записей в таблице по фильтру через StartDate и EndDate, но будет опция «Просмотреть все», поэтому иногда @Param может не содержать никаких значений.

В настоящее время мой 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

Как активировать это?

Ответы [ 2 ]

1 голос
/ 03 декабря 2009

Попробуйте это:

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

Надеюсь, это поможет.

/ Klaus

0 голосов
/ 03 декабря 2009

Вы можете попробовать что-то вроде этого

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...