SQL между в случае в случае, где пункт - PullRequest
1 голос
/ 07 марта 2019

Я пытаюсь написать запрос, который возвращает данные, где Date_column между результатом параметра и параметром -12 месяцев, когда параметр не равен нулю или где Date_column не равен нулю, где параметр равен нулю.Вы не могли бы мне помочь?Я перепробовал много вариантов, но всегда есть ошибки.

declare @my_date DateTime
select * from MyTable
where 
case when @my_date is null 
           then Date_column is not null
           else Date_column between @my_date and DATEADD(MONTH, -12, @my_date)
           end

1 Ответ

0 голосов
/ 07 марта 2019

Вы пишете свое состояние, как показано ниже, без case выражения

  where (Date_column is not null and  @my_date is null ) or 
     (Date_column between  DATEADD(MONTH, -12, @my_date) and @my_date)
...