SQL Server Case Statement when IS NULL -其他SO问题不能解决此问题



关于SO有两个问题,但它们是不同的,并不能解决这个问题。在将其标记为副本之前,请随意进行测试。

这个问题有一个SQLFiddle。

在本例中,手机号码可能为NULL

<表类> ID 名称 细胞 tbody><<tr>1约翰1232莎莉空

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

最新更新