我正在对传入几个变量并比较几个字段的单个表执行搜索查询。 像这样:我需要一个搜索来匹配存储为空的值
WHERE a.callerfname LIKE @FName
AND a.callerlname LIKE @LName
AND a.callermname LIKE @MName
的形式,如果被选择用于字段因此该领域的所有结果相匹配的一个没有值发送以%。
一个字段是ProjectID
这是一个Guid,可能包含null
值。 当我没有项目搜索选择的形式通过在空白的Guid(000000-000 ...),我在CASE
检查它像这样:
AND a.projectid = CASE WHEN @ProjectId <> '00000000-0000-0000-0000-000000000000'
THEN @ProjectId
ELSE a.projectid
END
麻烦的是,如果行有一个NULL ProjectID
它不会匹配它自己。 我的问题是在一个GUID字段中的空值会匹配什么?或者我怎么能让projectid返回所有的值,如果null的方式和名称会比较%?
请看这里:WHERE(column = @参数OR NULLIF(@Parameter,'%')IS NULL)' – 2012-04-16 18:06:38