Looking for a query which executes where clauses based on boolean variables.
Something like:
select
COUNT(col1)
from
table1
where
(@var1 is not null and col1 > @var1)
and (@var2 is not null and col1 <= @var2);
Note the above query doesn’t do what I need. I basically want:
If @var1 == NULL and @var2 == NULL THEN true
If @var1 == NULL and @var2 != NULL THEN col1 <= @var2
If @var1 != NULL and @var2 == NULL THEN col1 > @var1
If @var1 != NULL and @var2 != NULL THEN col1 > @var1 && col1 <= @var2
>Solution :
Seems like you gave up half way? Just continue as you started.
WHERE
(@var1 IS NULL AND @var2 AND NULL)
OR (@var1 IS NULL AND @var2 IS NOT NULL AND col2 <= @var2)
OR (@var1 IS NOT NULL AND @var2 IS NULL AND col1 > @var1)
OR (@var1 IS NOT NULL AND @var2 IS NOT NULL AND col1 > @var1 AND col2 <= @var2)