Can I make a parameterized equality based condition in the where clause of a SQL statement always true
I have a series of queries which depend on a where clause which looks like the following:
where a = and b = and c = and d =
The angular brackets represent conditions that are passed in as string parameters from a script containing my queries. I need to modify these queries so that in some instances (that the script decides) the results of my queries are independent of one of those conditions. I was wondering if there is some clever way to construct the parameter to accomplish that, so that my script can simply adjust the parameter when necessary and it flows through all of the queries, rather than modifying each query or making larger modifications to my script.
emmalee last edited by
So this can definitely depend on the database system and version you're using, so you should include those as tags on your post, but typically I would write the predicate to have a way to short-circuit based on a certain value of the parameter. Generally I use
NULLas the short-circuit value.
An example of how to re-write your predicate to be able to be short-circuited is like so:
Otherwise, no, I don't think it's possible with your original predicate to pass in some value that always results in true such that it doesn't affect the results (assuming
dare column names and not some construct holding scalar values).