在'LIKE'中,运算符需要选择'NULL'(DB)值

时间:2010-02-24 07:41:14

标签: sql-server sql-server-2008

这是一个典型的问题问我的老板..

问:如何使用LIKE运算符选择数据库中的空值。

我试过如下:

select c.ClaimID from claim c
where c.InjuredPartyFirstName like (''+coalesce(c.InjuredPartyFirstName,'')+'') 

但这也行不通........

请帮助一些人

提前致谢... vinay k

3 个答案:

答案 0 :(得分:4)

为什么不使用

select c.ClaimID from claim c where c.InjuredPartyFirstName IS NULL 

如果这是某种奇怪的测试,请尝试

select c.ClaimID from claim c 
where ISNULL(c.InjuredPartyFirstName, '') like ''

答案 1 :(得分:2)

按NULL执行过滤,如下所示:

select c.ClaimID 
from claim c 
where c.InjuredPartyFirstName IS NULL

答案 2 :(得分:0)

所以对老板的诀窍问题的正确答案是你不能直接用LIKE来做,除非你想通过首先合并空值来减慢查询速度。然后向他/她解释为什么 NULL为NULL并且不应该能够直接应用LIKE。

编辑:也许这只是你的老板试图过滤掉伪装者的绝地?