[转][SQL]如何实现存储过程中动态加入条件---没想到语句可以这么巧妙
在存储过程过程中,如果要实现Select查询的where子句动态查询,可以用exec ( "select .... where" +@whereStr)这样的方式。但这样的话,感觉用存储过程就没什么用了,因为存储过程最大的特点就是将代码编译了放在DBMS中,而调用exec的话,这一部分就无法编译,也就无从优化了。下面是一个比较巧妙的方法去实现所谓的“动态查询”select * from table1 where a = 1 and ((@id IS NULL) or (id=@id) or (@id=''))@id是传入的参数,如果◎id的值是null的话,那么and后面一整块是false,可以忽略,而如果不为null的话,实际上等于where a=1 and id=@idso...如果要启用id作为查询条件,就传入一个非null的值,否则就是不启用id作为查询条件,这就是传说中的动态查询![]()
[转][SQL]如何实现存储过程中动态加入条件---没想到语句可以这么巧妙的更多相关文章
- SQL Server在存储过程中编写事务处理代码的三种方法
SQL Server中数据库事务处理是相当有用的,鉴于很多SQL初学者编写的事务处理代码存往往存在漏洞,本文我们介绍了三种不同的方法,举例说明了如何在存储过程事务处理中编写正确的代码.希望能够对您有所 ...
- 在 SQL Server 的存储过程中调用 Web 服务
介绍 一个老朋友计划开发一个应用,基于 .NET 和 Socket,但需要在存储过程中调用 Web 服务. 在这篇文章中我们将分享这个应用的经验,讲述如何在存储过程中调用 Web 服务,并传递参数. ...
- 在存储过程中执行3种oracle循环语句
create or replace procedure pr_zhaozhenlong_loop /* 名称:在存储过程中执行3种循环语句 功能:利用循环给表中插入数据 调用: begin -- Ca ...
- SQL Server数据库存储过程中拼接字符串注意的问题
在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: -- ============ ...
- sql在所有存储过程中查询包含某字符串的执行语句
直接在查询分析器中执行以下代码就行: 方法一) select name from sysobjects o, syscomments s where o.id = s.id and text like ...
- 使用PL/SQL能查询oracle中数据,在for update 语句中一直卡住
原因:在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住.下次就不能执行增删操作. 解决:1.查询 ...
- SQL Server使用sp_executesql在存储过程中执行多个批处理
SQL Server中有些SQL语句只能在一个批处理里面完成,例如CREATE SCHEMA语句创建SCHEMA的时候,每个SCHEMA都需要在一个单独的批处理里面完成: CREATE SCHEMA ...
- SQL中in参数在存储过程中传递及使用的方法
背景: 1.使用存储过程 2.存储过程中有in 3.in括号里面的内容作为参数传递 解决方案: 1.直接拼接sql 可在存储过程中拼接字符串,然后执行此字符串,类似于js中的eval PROCEDUR ...
- 在sqlserver存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的
最近在一项目修改中,要在存储过程中给in参数传值,语句写的也对,但怎么执行都得不出结果,如果把这语句直接赋值.执行,却能得出结果,很是奇怪,如: 直接执行select schoolname from ...
随机推荐
- 让QQ好友现形
方法一 现在使用QQ的朋友,越来越注重保护自己的个人信息,如果对方将个人资料设置为保密你就无法看到对方的资料了,而这位好友如果又有着不断变换昵称的不良习惯,那么随着QQ好友名单的不断增加,时间一长,你 ...
- hdu-1698(线段树,区间修改)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698 注意:用位运算会更快,不然超时. #include<iostream> #inclu ...
- 18 Customers' Role in Good Customer Service 客户在高质量客服中的作用
Customers' Role in Good Customer Service 客户在高质量客服中的作用 ⑴High-quality customer service is preached by ...
- Linux下一个简单sniffer的实现
Sniffer(嗅探器)是一种基于被动侦听原理的网络分析方式.将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获.对于网络监听的基本原理我们不在赘述,我们也不开启网卡的混杂模式,因为现在的 ...
- python面向对象-3类的静态方法和类方法
还是以上次的洗衣机例子: class Washer: company='ZBL' def __init__(self,water=10,scour=2): self._water=water #不想让 ...
- 多网卡下对ServerSocket以TCP协议绑定IP和端口的测试
一.引言:之前开发TCP协议的程序(C#里是Socket为主)都是基于主机上只有一个IP的,后来项目里涉及到了主机需要同时连接内外和外网的情况,在该主机上部署着一套WCS系统和一套WMS系统:WCS系 ...
- Python Sleep休眠函数
#!/usr/bin/env python import os import time def fun(name): write_name="command %s failed!\n&quo ...
- [翻译]Spring MVC RESTFul Web Service CRUD 例子
Spring MVC RESTFul Web Service CRUD 例子 本文主要翻译自:http://memorynotfound.com/spring-mvc-restful-web-serv ...
- spring mvc后台如何处理ajax的请求,并返回json
spring mvc中有一个注解:@ResponseBody,把这个注解放到ajax请求对应的@RequestMapping(xxx)方法上,在方法体内部,把要返回的json赋给一个String类型的 ...
- 99 Times--Kate Voegele
歌手 Kate Voegele 是美国俄亥俄州的一位年轻创作型歌手,她会唱歌.会写歌.特 别擅长弹吉他.还会弹钢琴.她是美国新生代歌手中的佼佼者. 99 Times--Kate Voegele S ...