Sql Server使用cursor處理重復數(shù)據(jù)過程詳解
更新時間:2014年08月01日 09:50:02 投稿:whsnow
本節(jié)主要介紹了Sql Server cursor的使用,以處理重復數(shù)據(jù)為例,需要的朋友可以參考下
/************************************************************ * 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 ( email ,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 ( email ,OrderNo ,TrackingNo ) VALUES ( @@email ,@@orderNO ,@@trackingNO ); SET @@email = @NextEmail; SET @@orderNO = @NextOrderNO; SET @@trackingNO = @NextTrackingNO; END FETCH NEXT FROM email INTO @NextEmail,@NextOrderNO, @NextTrackingNO; END CLOSE email; --關(guān)閉游標 DEALLOCATE email; --釋放游標 END END
相關(guān)文章
mssql函數(shù)DATENAME使用示例講解(取得當前年月日/一年中第幾天SQL語句)
這篇文章主要介紹了mssql函數(shù)DATENAME取得當前年月日、一年中第幾天的SQL語句2013-11-11hive中將string數(shù)據(jù)轉(zhuǎn)為bigint的操作
這篇文章主要介紹了hive中將string數(shù)據(jù)轉(zhuǎn)為bigint的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09insert select與select into 的用法使用說明
將一個table1的數(shù)據(jù)的部分字段復制到table2中,或者將整個table1復制到table2中,這時候我們就要使用SELECT INTO 和 INSERT INTO SELECT 表復制語句了2011-12-12為數(shù)據(jù)庫生成某個字段充填隨機數(shù)的存儲過程
為數(shù)據(jù)庫生成某個字段充填隨機數(shù)2010-05-05sqlserver合并DataTable并排除重復數(shù)據(jù)的通用方法分享
網(wǎng)上合并DataTable通用方法的文章很多,結(jié)合項目開發(fā)中的常用需求,并借鑒網(wǎng)上的做法,寫了一個合并DataTable的通用方法,主要功能是合并兩個DataTable(結(jié)構(gòu)可以不同,如字段不完全一致),并可以根據(jù)某一列值進行排重處理2011-12-12SQL Server 高性能寫入的一些經(jīng)驗總結(jié)
本篇博文將針對一些常用的數(shù)據(jù)庫性能調(diào)休方法進行介紹,而且,為了編寫高效的SQL代碼,我們需要掌握一些基本代碼優(yōu)化的技巧,所以,我們將從一些基本優(yōu)化技巧進行介紹2012-08-08SQL Server誤區(qū)30日談 第8天 有關(guān)對索引進行在線操作的誤區(qū)
在線索引操作會在操作開始時和操作結(jié)束時對資源上短暫的鎖。這有可能導致嚴重的阻塞問題2013-01-01SQL Server數(shù)據(jù)庫中批量導入數(shù)據(jù)的四種方法總結(jié)
數(shù)據(jù)導入一直是項目人員比較頭疼的問題。其實,在SQL Server中集成了很多成批導入數(shù)據(jù)的方法,接下來為大家介紹下常用的四種批量導入數(shù)據(jù)的方法,感興趣的各位可以參考下哈2013-03-03