I am trying to write a SQL Select statement to return records based on a user input through a front end. I want to write the Select statement like this:
SELECT somefields
FROM sometable
WHERE CASE variable
WHEN 'blank' THEN field IS NULL
ELSE field = field
END
Basically I either want to filter a column to find NULL values or ignore the filter and return all values depending on the value of the variable. I know that the results of the CASE statement is not executable but how can I do this?
When variable
is 'blank', the following query will give you rows where field
is NULL. When variable
is anything else, it will give you all rows:
SELECT somefields
FROM sometable
WHERE
(variable = 'blank' AND field IS NULL)
OR (variable <> 'blank')
You can use NULLIF()
(link is for SQL Server, but NULLIF()
should be standard):
SELECT somefields
FROM sometable
WHERE field = NULLIF(variable, 'blank')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With