sql server 2014 - T-SQL CASE in the WHERE Clause using BETWEEN dates -


having problem syntax, need return result based on number , date range, if 6,2 date range else other date range.

declare @test table   ( id nvarchar(10) ,number int ,[date] datetime  ) insert @test values ('tg32',6,'20160715') insert @test values ('tg47',6,'20160803') insert @test values ('ag9',6,'20160805') insert @test values ('bf27',2,'20160804') insert @test values ('qd65',2,'20160802') insert @test values ('f98',0,'20160806') insert @test values ('gc5',0,'20160731') insert @test values ('ht76',0,'20160802') insert @test values ('kl81',0,'20160805') insert @test values ('wr52',0,'20160802');  select top 10 * @test  [date] = case when number in ('6','2')  ([date] between cast(getdate() - 6 date) , getdate())  else ([date] between cast(getdate() - 1 date) , getdate()) end  

you can't use case in way, in sql case not if else more similar function (test?if_yes;if_not)

where [date] between cast(getdate() - case when number in ('6','2') 6 else 0 end date) , getdate()  

Comments

Popular posts from this blog

Spring Boot + JPA + Hibernate: Unable to locate persister -

go - Golang: panic: runtime error: invalid memory address or nil pointer dereference using bufio.Scanner -

c - double free or corruption (fasttop) -