根据商品名称、价格区间检索商品的SQL语句

 

如果名称和价格为空会检索出所有的数据

 1  1 select * from TblProduct
 2  2 where (@proName='' or chvProName like '%'+@proName+'%')
 3  3 and (@minPrice=''  or mnyProPrice>=@minPrice)
 4  4 and (@maxPrice='' or mnyProPrice<=@maxPrice);
 5  5 
 6  6--下面将参数替换成字符串
 7  7 --测试
 8  8 select * from TblProduct
 9  9 where (''='' or chvProName like '%'+''+'%')
10 10 and (''=''  or mnyProPrice>=null)
11 11 and (''='' or mnyProPrice<=null);
--检索出所有的商品

注:' ' is null  返回的false

 

--如果更改成下面代码:会报【从数据类型 varchar 转换为 numeric 时出错。】的错
select * from TblProduct
where (' '=' ' or chvProName like '%'+''+'%')
and (' ' is null  or mnyProPrice>='')
and (' ' is null or mnyProPrice<='');

如果将mnyProPrice>='' 改为mnyProPrice>=null则不会报错,但因为条件不满足,检索不到任何数据

 

posted @ 2014-10-11 22:40  易墨  阅读(2197)  评论(0编辑  收藏  举报
Fork me on GitHub