Hier leest u hoe u dit kunt oplossen met een enkele WHERE
clausule:
WHERE (@myParm = value1 AND MyColumn IS NULL)
OR (@myParm = value2 AND MyColumn IS NOT NULL)
OR (@myParm = value3)
Een naïef gebruik van de CASE-instructie werkt niet , hiermee bedoel ik het volgende:
SELECT Field1, Field2 FROM MyTable
WHERE CASE @myParam
WHEN value1 THEN MyColumn IS NULL
WHEN value2 THEN MyColumn IS NOT NULL
WHEN value3 THEN TRUE
END
Het is mogelijk om dit op te lossen met een case-statement, zie het antwoord van onedaywhen