SQL Server多条件查询的实现

SQL Server多条件查询我们经常会用到,下面就教您如何使用存储过程实现SQL Server多条件查询,希望对您学习SQL Server多条件查询方面有所帮助。

以前使用的方法是将所有参数进行判断,然后对不同情况组合对应的sql查询语句,以实现分页和查询,但这种方法只适合查询条件较少的情况,如果查询条件过多那就恐怖了,比如四个条件查询,那就有4*4=16中可能要判断,可想而知,要用多少代码,辛苦多少脑细胞来写完这个判断语句,呵呵。

直到遇到了多达10个查询条件的查询事件,这种方法就彻底被我否决了。带着这种需求,找到了一种简便又很清晰的方法,

/*查询资讯类别列表*/
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'get_list_newscate' AND type = 'P')
DROP PROCEDURE get_list_newscate
GO
create proc get_list_newscate
@newscate_pid int,
@newscate_depth int,
@newscate_language int
as
select * from [news category] where 1=1
and (@newscate_pid is null or newscate_pid=@newscate_pid)
and (@newscate_depth is null or newscate_depth=@newscate_depth)
and (@newscate_language is null or newscate_language=@newscate_language)
order by newscate_orderid

此存储过程可以实现SQL Server多条件查询,可以用于网站高级检索的功能

查询条件默认为null
程序中值类型不能为null可以在类型后加一个?这样就可以null
比如:int i=null 错误 int? i=null正确

where 1=1是为了当查询条件都不需要用到时就查询全部数据

最新文章

  1. 《learning hard C#学习笔记》读书笔记(20)异步编程
  2. 我的第一个HTML的程序
  3. W3School-CSS 文本实例
  4. iwebshop二次开发(2)
  5. 【转】ST05
  6. FOR UPDATE SKIP LOCKED
  7. ActiveMQ相关背景(转)
  8. 手把手教你用vue-cli搭建vue项目
  9. python模块之PIL模块
  10. 事件触发器-----dispatchEvent
  11. java 获取局域网中的全部主机名和IP地址
  12. mysql数据表自动导为python sqlalchemy可操作对象
  13. Linux系统CPU的性能监控及调优
  14. Node服务端极速搭建 - nvmhome
  15. odex反编译dex异常 Cannot locate boot class path file /system/framework/core.odex
  16. poj-2259 team queue(数据结构)
  17. 第四课(2)——mysql配置参数讲解
  18. Oracle data guard学习
  19. vue 学习一
  20. scrollView 代理方法的实现顺序的些许区别

热门文章

  1. shell 4注释
  2. javascript创建对象之函数构造模式和原型模式结合使用(四)
  3. CSS Web安全字体组合
  4. socket.io带中文时客户端无法响应
  5. mysql数据表自动导为python sqlalchemy可操作对象
  6. Redis 的 GEO 特性将在 Redis 3.2 版本释出
  7. python 编写远程连接服务器脚本
  8. xml转json的方法
  9. 3.mybatis实战教程(mybatis in action)之三:实现数据的增删改查
  10. IIS ashx