`

SQLserver用游标实现循环 和 简单的量值函数

阅读更多
declare @sums numeric(15,2)    -- 这里必须要写上位数,不然默认为整数
declare @cltno varchar(32) 
declare @feeMoney numeric(15,2)
declare cur cursor for sELECT  CltNo FROM  memberinfo WHERE CltNo NOT IN ('00029098','00027565')   -- 定义游标 
select @sums = 0.0 
open cur                                                                            --打开游标
fetch next from cur  into @cltno
while @@fetch_status = 0 
begin
  SELECT @feeMoney = fee 
        FROM Ns_CMS_Gettable(@cltno,
                                    '2015-10-01',
                                    '22'); 
select  @sums = @sums + @feeMoney;
fetch next  from cur into @cltno
end 
close cur                                                             -- 关闭游标
Deallocate cur                                                        -- 删除游标
print @sums                                                         -- 输出
print cast(@sums as varchar(10)) + 'ddddddd'     -- 把数字类型转换成字符串

 

函数

create FUNCTION [dbo].[ns_cms_getnewfeemoney](@cid int) 
returns numeric(15,2) 
as 
begin
    declare @sums numeric(15,2) 
    declare @cltno varchar(32) 
    declare @feeMoney numeric(15,2)
    declare cur cursor for sELECT  CltNo FROM  memberinfo WHERE CltNo NOT IN ('00029098','00027565')   -- 定义游标 
    begin
    select @sums = 0.0 
    open cur
    fetch next from cur  into @cltno
    while @@fetch_status = 0 
    begin
      SELECT @feeMoney = fee 
            FROM Ns_CMS_Gettable(@cltno,
                                        '2015-10-01',
                                        '22'); 
    select  @sums = @sums + @feeMoney;
    fetch next  from cur into @cltno
    end 
    close cur                                                             -- 关闭游标
    Deallocate cur                                                        -- 删除游标
  end 
       RETURN @sums 
end 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    SQL Server遍历表中记录的2种方法(使用表变量和游标)

    总结,遍历SQL Server表中的记录,可以采用表变量配合循环的方式,或者使用游标。表变量方法简洁且对数据的影响可控,但可能需要额外删除已处理的行。游标提供了逐行处理的灵活性,但效率较低,应作为最后的手段。在...

    SQL Server游标的使用/关闭/释放/优化小结

    总结来说,虽然SQL Server游标在很多方面不如集合操作高效,但在特定场景下,它们提供了灵活性和处理复杂任务的能力。了解和掌握游标,可以帮助我们在必要时有效地解决问题,同时避免不必要的性能损失。因此,即使...

    MS SQL SERVER 游标详解

    在MS SQL SERVER中,游标是一项关键功能,它允许开发者逐行处理查询结果集,而不仅仅是一次性处理所有数据。游标对于那些需要按顺序访问或处理数据的应用场景尤其有用,例如在循环中处理数据记录或者根据当前行状态...

    T-SQL程序设计与游标设计

    T-SQL 程序设计与游标设计 T-SQL 程序设计是数据库系统原理实验三的主要内容之一,它包括变量、流程控制命令、其他命令和常用函数四部分。...只有掌握了这些知识点,我们才能更好地设计和实现数据库应用程序。

    SQL经典游标使用方法

    龙摆尾(坚行).sql.txt和游标实例.sql.txt很可能是包含具体游标使用示例的文件,可能涵盖了诸如迭代处理数据、基于条件更新数据等场景。实际应用中,游标常用于循环执行某个操作,例如批量更新满足特定条件的记录...

    不使用游标完成循环功能(下)

    对于那些希望提高查询效率的T-SQL程序员和数据库管理员而言,掌握不依赖游标的循环技术至关重要。本文将详细介绍两种不使用游标的循环方法,并阐述其背后的原理及应用场合。 #### 方法二:不带标识的临时表 **原理...

    sqlserver 游标的简单示例

    在SQL Server中,游标是一...总结来说,这个示例展示了如何在SQL Server中声明、打开、使用、关闭和释放游标,以及如何利用游标进行逐行数据处理。在实际应用中,根据具体需求和性能考虑,可以适当调整或优化游标使用。

    PostgreSQL_与_MS_SQLServer比较

    - 两者都支持动态 SQL,但语法和实现细节有所不同。 #### SELECT INTO 变量或行/记录赋值语句 - **MS SQL Server** 中使用 `SELECT @variable = column FROM table`。 - **PostgreSQL** 中使用 `SELECT column INTO...

    取代游标的简单方法

    针对上述问题,本文介绍了一种更为简单高效的替代方案,即通过使用T-SQL的`IDENTITY`函数和`WHILE`循环结合`SELECT INTO`语句来实现类似游标的功能,但显著提升了处理效率。 #### 替代方案详解 假设原始数据表为`...

    一个简单的sql循环语句脚本

    在数据库编程中,我们通常使用PL/SQL(Oracle)、T-SQL(Microsoft SQL Server)或存储过程(MySQL)来实现循环结构。本话题将详细讲解一个简单的SQL循环语句脚本及其相关知识。 一、SQL循环语句概述 SQL循环语句...

    SQLServer和Oracle的常用函数

    - SQL Server独有的`GROUPING_ID()`用于确定分组级别,Oracle则使用`RANK()`, `DENSE_RANK()`, `ROW_NUMBER()`等窗口函数来实现类似功能。 6. **条件函数** - `CASE`语句在两个数据库中都存在,用于基于条件进行...

    SQL游标原理和使用方法

    游标在数据库编程中扮演着重要角色,尤其是在处理分步数据操作时。游标允许开发者逐行处理查询结果,提供了一种灵活的方式来控制数据的读取、...在SQL Server中,正确理解和使用游标对于优化数据库应用程序至关重要。

    在SQL Server中实现数据的数组式读取.pdf

    在SQL Server中实现数据的数组式读取是指在SQL Server中模拟数组,利用系统的SYSCOLUMNS表、OBJECTID函数、COLNAME函数、动态SELECT命令和滚动游标,实现表数据按行列号读取。 关键词:SQL Server;数据;数组;...

    oracle与SQL server的语法差异总结

    Oracle 和 SQL Server 是两种广泛应用的关系型数据库管理系统,它们在语法和功能上存在一定的差异。以下是对两者主要区别的一些详细说明: 1. **伪列 ROWNUM**: 在Oracle中,ROWNUM是一个伪列,用于获取结果集中...

    Inside Microsoft SQL Server 2008 T-SQL Programming

    3. **数据类型和变量**:熟悉SQL Server 2008中的各种数据类型,如INT、VARCHAR、DATE等,以及声明和使用变量。 4. **控制流程**:掌握IF-ELSE、CASE表达式、WHILE循环和BEGIN-END块等控制流程语句,用于编写逻辑...

    SQL Server与Oracle常用函数对比

    通过对比这些函数,我们可以看到SQL Server和Oracle虽然在功能上有很多相似之处,但在具体实现和细节上有所不同。理解这些差异对于在跨平台开发时编写兼容性代码至关重要。学习和掌握这两种数据库系统的函数,能够...

    SQL server使用自定义函数以及游标

    在SQL Server中,自定义函数和游标是两种强大的工具,尤其在处理复杂的数据操作和转换时。在上述场景中,我们看到一个需求是将原始数据表中的标准宗地编码按其所在区段编码进行聚合,形成一个新的表示形式。下面我们...

    SQL Server 游标语句 声明/打开/循环实例

    在设计数据库操作时,应优先考虑使用非游标的方法,比如使用集合理论的函数(如`JOIN`, `GROUP BY`, `HAVING`, `UNION`等)和内置的集合操作。只有在确实需要逐行处理数据的情况下,才考虑使用游标。此外,尽可能...

Global site tag (gtag.js) - Google Analytics