SQL中游标的用法】的更多相关文章

游标:是用来对表从上下每行循环取值,将值连接成为字符串.例子:对 pubs 数据库的dbo.titles 表.1.取得表中的总价格:select sum(price) from dbo.titles2.但是我想得到这样一个结果:书名,价格.精通ASP,39元:学习vc++,28元:JAVA编程,23元则用到游标: 声明游标:declare titprice CURSOR FAST_FORWARD forselect title, price from dbo.titles where price…
一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言,如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环 游标的类型:  1.静态游标(不检测数据行的变化)  2.动态游标(反映所有数据行的改变)  3.仅向前游标(不支持滚动)  4.键集游标(能反映修改,但不能准确反映插入.删除) 游标使用顺序:   1.定义游标   2.打开游标   3.使用游标   4.关闭游标   5.释放游标 Transact-SQL: declare 游标名…
--------------------------------------例子1 单纯的游标-------------------------------- create TABLE Table1 ( a ), b ), c ), CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED ( a ASC ) ) ON [PRIMARY] create TABLE Table2 ( a ), c ), CONSTRAINT [PK_Table2] PRIMARY…
http://www.cnblogs.com/tianguook/archive/2011/03/09/1977987.html 一般情况下,我们用SELECT这些查询语句时,都是针对的一行记录而言,如果要在查询分析器中对多行记录(即记录集)进行读取操作时,则需要使用到游标或WHILE等循环 游标的类型:  1.静态游标(不检测数据行的变化)  2.动态游标(反映所有数据行的改变)  3.仅向前游标(不支持滚动)  4.键集游标(能反映修改,但不能准确反映插入.删除) 游标使用顺序:   1.定…
declare @email_source varchar(MAX); --1.原始发件人字段 declare @key_name varchar(50); --2.我方卷号或客户代码 declare c_cur cursor for select distinct vc_your_email,vc_our_ref_or_code from #ip_special_email_total where vc_your_email like '%@%' order by vc_our_ref_or_…
游标用于按顺序遍历结果集.但一般情况下,应尽量避免使用游标.原因: 1. 游标违背了关系模型,即按集合来考虑问题的思想: 2. 游标逐行对纪录进行操作,会带来额外的开销,使用游标的解决方案通常比使用集合的解决方案要慢得多: 3. 使用游标的解决方案,需要用很多代码来描述对游标的操作,因此代码更长,可读性更差,也更难以维护. 只有在少数情况下才应当使用游标.举两个例子: 1. 需要遍历表名,进行DDL操作: 2. 连续聚合,此时基于游标的解决方案可能比基于集合的解决方案更快.…
存储过程中查询语句如何返回多行结果? 我们知道,如果存储过程中查询语句有多行结果输出,会报错:ORA-01422: exact fetch returns more than requested number of rows 若想让存储过程中的查询语句返回多行结果不报错,则需要使用游标来实现. 本例主要也是用来熟悉存储过程中游标的简单使用方法.案例所涉及的数据表使用的是oracle自带的scott用户. 1.打开输出选项 SET SERVEROUTPUT ON; 2.创建查询员工薪水的存储过程…
SQL语句---nvl 用法   一NVL函数是一个空值转换函数 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值. 该函数的目的是把一个空值(null)转换成一个实际的值.其表达式的值可以是数字型.字符型和日期型.但是表达式1和表达式2的数据类型必须为同一个类型. 对数字型: NVL( comm,0); 对字符型 NVL( TO_CHAR(comm), 'No Commission') 对日期型 NVL(hiredate,' 31-DEC-99…
SQL 语句日期用法及函数 --DAY().MONTH().YEAR()——返回指定日期的天数.月数.年数:select day(cl_s_time) as '日' from class  --返回天select '月'=month(cl_s_time) from class  --返回月select '年'=year(cl_s_time) from class  --返回年 --DATEADD(datepart,number,date)——在日期上增加给定日期类型的数量:select date…
SQL 中ROLLUP 用法 ROLLUP 运算符生成的结果集类似于 CUBE 运算符生成的结果集. 下面是 CUBE 和 ROLLUP 之间的具体区别: CUBE 生成的结果集显示了所选列中值的所有组合的聚合. ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合. ROLLUP 优点: (1)ROLLUP 返回单个结果集,而 COMPUTE BY 返回多个结果集,而多个结果集会增加应用程序代码的复杂性. (2)ROLLUP 可以在服务器游标中使用,而 COMPUTE BY 则不可以…