sql选择空值

时间:2010-09-14 09:38:26

标签: sql null

我有SP从具有两列的表中选择数据,如

@param1 text,
@param2 text
Select * from tablle1 where field1 like @param1 and field2 like @param2

但是,因为有时Filed2为null我必须这样做,否则查询什么都不返回

@param1 text,
@param2 text
Select * from tablle1 where field1 like @param1 and (field2 like @param2 OR field2 IS NULL)

我的问题是,如果我现在尝试使用@param2的值运行SP,为@param1运行'%',我会从表中获取所有行

我怎样才能在各种情况下做到这一点? 我打算在asp.net网站上的搜索表单中使用此SP,并为用户提供在搜索中使用'%'的选项。(最终会有更多字段要搜索,每个字段都会有一个文本框页面默认为'%')

2 个答案:

答案 0 :(得分:2)

试试这个

@param1 text,
@param2 text
Select * from tablle1 where field1 like @param1 and isnull(field2,@param2) like @param2 
or
Select * from tablle1 where field1 like @param1 and isnull(field2,'') like @param2 

答案 1 :(得分:0)

你应该看看Sommarskogs homepage

这是关于这个主题的最佳参考,它也将解决你最有可能使用此代码的一些其他问题。