当proc为null时,stored proc返回所有行

sam*_*sam 0 sql t-sql sql-server stored-procedures

当可选参数为null或为空时,如何忽略该条件?例如

declare @color nvarchar(50)
declare @time datetime

set @color = null

select * 
  from apples 
 where apple.color = @color 
   and apple.time = @time
Run Code Online (Sandbox Code Playgroud)

如果@color或@time为null,我想忽略这个条件.

Luk*_*keH 5

SELECT *
FROM apples
WHERE (@color IS NULL OR apples.color = @color)
    AND (@time IS NULL OR apples.time = @time)
Run Code Online (Sandbox Code Playgroud)