将
关于SO有两个问题,但它们是不同的,并不能解决这个问题。在将其标记为副本之前,请随意进行测试。
这个问题有一个SQLFiddle。
在本例中,手机号码可能为NULL
<表类>
ID
名称
细胞
tbody><<tr>1 约翰 123 2莎莉 空 表类>
NULL
不等于任何东西,包括NULL
但您可以检查是否有NULL
WHERE (@Cell IS NULL AND Cell IS NULL) OR Cell = @Cell
可能也可以将比较移到CASE
中,但这至少在意义上是清楚的。
您可以不使用CASE
表达式,使用COALESCE()
:
DECLARE @Cell NVARCHAR(100) = ?
Select * from Temp
WHERE Cell = @Cell OR COALESCE(Cell, @Cell) IS NULL;
将
?
替换为您搜索的值或NULL
。