MSSQL – CASE WHEN IN WHERE

select * from tbl_events_dates
where
1 =

(
 CASE WHEN
 tbl_events_dates.dateStart < CAST(cast(year(GETDATE()) as varchar)+'-09-01' AS datetime)
 THEN
 CASE WHEN
 tbl_events_dates.dateStart >= CAST(cast(year(DATEADD(year,-1,GETDATE())) as varchar)+'-09-01' AS datetime)
and
tbl_events_dates.dateStart <CAST(cast(year(GETDATE()) as varchar)+'-09-01' AS datetime)
 THEN 1 else 0 end
 ELSE
 CASE WHEN
 tbl_events_dates.dateStart <=CAST(cast(year(GETDATE()) as varchar)+'-09-01' AS datetime)
and
tbl_events_dates.dateStart >= CAST(cast(year(DATEADD(year,1,GETDATE())) as varchar)+'-09-01' AS datetime)
 THEN 1 else 0 end
END
)

Comments are closed.