我有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,并为用户提供在搜索中使用'%'的选项。(最终会有更多字段要搜索,每个字段都会有一个文本框页面默认为'%')
答案 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
这是关于这个主题的最佳参考,它也将解决你最有可能使用此代码的一些其他问题。