2

我正在尝试写类似的东西:

SELECT *
FROM MyTable m
WHERE m.Category = CASE WHEN @Category IS NULL THEN m.Category ELSE @Category END

基本上,如果这个有一个值,我需要m.Category等于的行;@Category否则,我需要所有线路。

但是如果m.CategoryNULL值,则该行不会发回,因为 SQL 需要一些东西 lileWHERE m.Category IS NULL而不是WHERE m.Category = NULL

那么,我如何修改我的请求以告诉 SQL:“如果为空,我需要所有行@Category(即使m.Category是空的行),但如果@Category有值,我只需要m.Category匹配的行@Category

4

1 回答 1

3

你可以这样写:

select *
from MyTable m
where @Category is null or m.Category = @Category
于 2013-11-01T17:59:00.130 回答