【发布时间】:2012-02-20 11:36:30
【问题描述】:
我在 SQL Server 2005 中有一个存储过程,用于根据从 UI 传递的参数检索值。
这基本上是对许多表的JOIN 名称的搜索操作。我的问题是,当用户不提供中间名时,我的程序无法访问该值。
P.FirstName = Coalesce( @FirstName,P.FirstName) AND
P.MiddleName = Coalesce(@MiddleName,P.MiddleName) AND
P.LastName = Coalesce( @LastName,P.LastName) AND
(
P.FirstName = Coalesce(@anyName,P.FirstName) OR
P.MiddleName = Coalesce(@anyName,P.MiddleName) OR
P.LastName = Coalesce(@anyName,P.LastName)
)
我无法删除中间名,因为我在上述所有列上都提供了过滤选项。
【问题讨论】:
-
Dynamic Search conditions in T-SQL - 我猜
MiddleName是可以为空的,而你掉进了NULL = NULL陷阱。
标签: sql sql-server sql-server-2005