我正在尝试写类似的东西:
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?