我正在尝试写类似的东西:
SELECT *
FROM MyTable m
WHERE m.Category = CASE WHEN @Category IS NULL THEN m.Category ELSE @Category END
基本上,如果这个有一个值,我需要m.Category
等于的行;@Category
否则,我需要所有线路。
但是如果m.Category
有NULL
值,则该行不会发回,因为 SQL 需要一些东西 lileWHERE m.Category IS NULL
而不是WHERE m.Category = NULL
。
那么,我如何修改我的请求以告诉 SQL:“如果为空,我需要所有行@Category
(即使m.Category
是空的行),但如果@Category
有值,我只需要m.Category
匹配的行@Category
?