Sql Server使用cursor处理重复数据过程详解
作者:whsnow 发布时间:2024-01-27 09:01:35
标签:cursor,重复数据
/************************************************************
* Code formatted by setyg
* Time: 2014/7/29 10:04:44
************************************************************/
CREATE PROC HandleEmailRepeat
AS
DECLARE email CURSOR
FOR
SELECT e.email
,e.OrderNo
,e.TrackingNo
FROM Email20140725 AS e
WHERE e.[status] = 0
ORDER BY
e.email
,e.OrderNo
,e.TrackingNo
BEGIN
DECLARE @@email VARCHAR(200)
,@firstEmail VARCHAR(200)
,@FirstOrderNO VARCHAR(300)
,@FirstTrackingNO VARCHAR(300)
,@NextEmail VARCHAR(200)
,@@orderNO VARCHAR(300)
,@NextOrderNO VARCHAR(50)
,@@trackingNO VARCHAR(300)
,@NextTrackingNO VARCHAR(50)
BEGIN
OPEN email;
FETCH NEXT FROM email INTO @firstEmail,@FirstOrderNO, @FirstTrackingNO;
FETCH NEXT FROM email INTO @NextEmail,@NextOrderNO, @NextTrackingNO;
IF @NextEmail!=@firstEmail
BEGIN
INSERT INTO Email20140725Test
(
,OrderNo
,TrackingNo
)
VALUES
(
@firstEmail
,@FirstOrderNO
,@FirstTrackingNO
);
SET @@email = @NextEmail;
SET @@orderNO = @NextOrderNO;
SET @@trackingNO = @NextTrackingNO;
END
ELSE
BEGIN
SET @@email = @NextEmail;
SET @@orderNO = @FirstOrderNO+'、'+@NextOrderNO;
SET @@trackingNO = @FirstTrackingNO+'、'+@NextTrackingNO;
END
FETCH NEXT FROM email INTO @NextEmail,@NextOrderNO,@NextTrackingNO
WHILE @@fetch_status=0
BEGIN
IF @NextEmail=@@email
BEGIN
IF (@NextOrderNO!=@@orderNO)
SET @@orderNO = @@orderNO+'、'+@NextOrderNO
PRINT 'orderNO:'+@@orderNO
IF (@@trackingNO!=@NextTrackingNO)
SET @@trackingNO = @@trackingNO+'、'+@NextTrackingNO
PRINT 'trackingNO:'+@@trackingNO
END
ELSE
BEGIN
INSERT INTO Email20140725Test
(
,OrderNo
,TrackingNo
)
VALUES
(
,@@orderNO
,@@trackingNO
);
SET @@email = @NextEmail;
SET @@orderNO = @NextOrderNO;
SET @@trackingNO = @NextTrackingNO;
END
FETCH NEXT FROM email INTO @NextEmail,@NextOrderNO, @NextTrackingNO;
END
CLOSE email; --关闭游标
DEALLOCATE email; --释放游标
END
END
0
投稿
猜你喜欢
- 本文主要研究的是Python语言实现温度转换的相关实例,具体如下。代码如下:#TempConvert.py val=input("
- Python 3.6 版本 Pytesseract 图像验证码识别环境:(1) win7 64位 (2) Idea (3) python 3
- 基本思想:归并排序是一种典型的分治思想,把一个无序列表一分为二,对每个子序列再一分为二,继续下去,直到无法再进行划分为止。然后,就开始合并的
- 基本介绍环境: Python 3.5+, Pytorch 0.4.1/1.0.0安装:pip install pytorch-pretrai
- 今天第一次玩SQL Server 2005,需要配置远程连接。我废话少说,直入主题,总结下我从新手立场在win2003 server环境下去
- 该脚本的功能是卸载android手机中安装的所有第三方应用,主要是使用adb shell pm、adb uninstall 命令,所以使用的
- 1.索引是什么1.1 认识索引先创建一个简单的DataFrame。myList = [['a', 10, 1.1], &nb
- 1. 创建微信公众号首先,你需要注册一个微信公众号。访问微信公众平台,使用你的微信账号登录,并按照提示创建一个新的公众号。2. 开通微信公众
- 工欲善其事,必先利其器.python是解释型的语言,但是在windows下如果要执行程序的话还得加个python shell的话,
- 在最近的一次调试中,出现如下错误~·错误类型:ADODB.Recordset (0x800A0E7D)连接无法用于执行此操作。在此上下文中它
- 本文实例为大家分享了python实现通讯录管理系统的具体代码,供大家参考,具体内容如下=====欢迎使用通讯录管理系统=====1.添加2.
- 介绍我们可以通过控制HeaderStyle, RowStyle, AlternatingRowStyle和其他一些属性来改变GridView
- 本文实例为大家分享了python+opencv识别图片中足球的方法,供大家参考,具体内容如下先补充下霍夫圆变换的几个参数知识:dp,用来检测
- 1、先看看什么是 iterable 对象以内置的max函数为例子,查看其doc:>>> print max.__doc__
- 公司客户在使用网站后台编辑添加修改内容时,经常是直接从word文档里复制内容到编辑器里后就提交。结果是在内容显示页面上是五花八门的样式,有时
- 本文实例讲述了python创建一个最简单http webserver服务器的方法。分享给大家供大家参考。具体实现方法如下:import sy
- 1、安装有两种安装方法:方法一:从Mac自带的python安装,命令如下:$brewinstall python如果出错的话前面加上sudo
- df.sort_index()实现按索引排序,默认以从小到大的升序方式排列,如希望按降序排列,传入ascending = Falseimpo
- 本文简单介绍如何使用 Python 的 pyautogui 模块实现鼠标的自动移动以及键盘的自行输入. 该模块不是 Python 自带的,
- 原理:print() 函数会把内容放到内存中, 内存中的内容并不一定能够及时刷新显示到屏幕中(应该是要满足某个条件,这个条件现在还不清楚)。