【发布时间】:2013-11-12 23:46:45
【问题描述】:
我正在尝试写类似的东西:
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 需要WHERE m.Category IS NULL 而不是WHERE m.Category = NULL。
那么,我如何修改我的请求以告诉 SQL:“如果 @Category 为空,我需要所有行(即使 m.Category 为空的行),但如果 @Category 有值,我只需要m.Category 匹配 @Category 的行?
【问题讨论】:
标签: sql sql-server sql-server-2008 null case