I am trying to build an SQL SP to do a query for report. It has several arguments that could be NULL or should have a value. I am using the code below. Is there another alternative way of doing this, more cleanly or more proper. I am assuming that if an Argument is Null, i would just do a 1=1 filter condition.
DECLARE @Arg1 VARCHAR(10) = NULL,
@Arg2 VARCHAR(10) = NULL
SELECT * FROM Table1
WHERE
(CASE WHEN (@Arg1 IS NULL) THEN
1
ELSE
@Arg1
END) =
(CASE WHEN (@Arg1 IS NULL) THEN
1
ELSE
Location
END)
AND
(CASE WHEN (@Arg2 IS NULL) THEN
1
ELSE
@Arg2
END) =
(CASE WHEN (@Arg2 IS NULL) THEN
1
ELSE
Sex
END)