`
yanyanquan
  • 浏览: 452787 次
  • 性别: Icon_minigender_1
  • 来自: 江门
社区版块
存档分类
最新评论

利用游标删除重复字段的记录

    博客分类:
  • SQL
 
阅读更多
declare @max integer,@id integer
declare cur_rows cursor local for select id,count(*) from 表名 group by id having count(*) > 1
open cur_rows
fetch cur_rows into @id,@max
while @@fetch_status=0
begin
    select @max = @max -1
    set rowcount @max
    delete from 表名 where id = @id
    fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0

 

分享到:
评论

相关推荐

    SQL删除重复记录的方法

    这种方法利用游标逐个处理重复记录。 ```sql declare @max integer, @id integer declare cur_rows cursor local for select id, count(*) from 表名 group by id having count(*) > 1 open cur_rows fetch cur_...

    sql删除表中重复记录方法

    标题与描述概述的知识点是关于如何使用SQL语句来删除数据库表中的重复记录,这是一个在数据清理和维护数据完整性时非常实用的技术。以下是对给定文件中四种方法的详细解析和扩展,旨在帮助读者深入理解并掌握这些...

    四种SQL语句删除重复记录的方法

    #### 方法二:使用游标删除重复记录 这种方法适用于记录数量较少的情况,对于大数据量的表可能会导致性能问题。 ```sql DECLARE @max INT, @id INT; DECLARE cur_rows CURSOR LOCAL FOR SELECT id, COUNT(*) FROM...

    用SQL删除重复记录的N种方法

    此方法利用LEFT JOIN来匹配重复记录,并通过条件判断是否删除。 #### 示例代码: ```sql DELETE a FROM YourTable a LEFT JOIN ( SELECT id = MIN(id) FROM YourTable GROUP BY name, value ) b ON a.id = b.id...

    删除数据库中重复数据的几个方法.pdf

    这种方法利用游标(cursor)来处理重复数据。首先,声明两个变量`@max`和`@id`,然后创建一个游标`cur_rows`,用于遍历主字段重复的记录。游标查询的条件是主字段分组后,计数大于1的行,这意味着这些行存在重复。...

    实例介绍删除数据库中重复数据的几个方法

    - 循环遍历游标中的每条记录,每次删除除了第一条之外的所有重复记录。 - 关闭游标并重置行计数。 2. **利用临时表处理** - 创建一个临时表,并在其中添加一个自增的标识列`autoID`:`SELECT IDENTITY(int, 1, ...

    教你几种在SQLServer中删除重复数据方法

    它使用`IN`子句结合`GROUP BY`和`HAVING`来找出那些重复字段值超过一次的记录,然后通过`NOT IN`子句排除每个组中最小ID的记录,即保留每组的第一个记录。 总结来说,删除SQL Server中的重复数据可以通过游标、`...

    SQL Server中删除重复数据的几个方法

    这种方法利用游标遍历主键字段中具有重复值的行。首先,通过`GROUP BY`语句找出重复的主键值,并计算每组的行数。如果行数大于1,表明存在重复。然后,使用游标逐个处理这些重复值,每次删除除第一个外的所有重复行...

    删除SQL Server 200表中重复数据.pdf

    例如,你可以声明一个游标,遍历表中具有重复主键的记录,逐个删除多余的条目。以下是一个示例: ```sql DECLARE @max INTEGER, @id INTEGER; DECLARE cur_rows CURSOR LOCAL FOR SELECT 主字段, COUNT(*) FROM ...

    sql数据库一些查找删除方法.docx

    -- 假设 Name 和 Address 是重复字段 SELECT identity(int, 1, 1) AS autoID, * INTO #Tmp FROM 表名 SELECT min(autoID) AS autoID INTO #Tmp2 FROM #Tmp GROUP BY Name, autoID SELECT * FROM #Tmp WHERE autoID ...

    学生信息管理系统sql.pdf

    5. 按照字段排序查询结果,创建、修改和删除游标,以及从游标中读取数据。 6. 创建、查询视图,使用循环语句查找最小值,以及用内置函数获取最大值。 7. 创建用户自定义函数,如计算某字段的平均值,以及删除这些...

    精通sql结构化查询语句

    6.1 查询的基本结构 6.1.1 了解SELECT语句 6.1.2 SELECT语句的语法格式 6.1.3 SELECT语句的执行步骤 6.2 简单的查询语句 6.2.1 查询表中指定的字段 6.2.2 查询所有的字段 6.2.3 使用DISTINCT去除重复信息 ...

    VC中操作ADO数据库资料

    最后,_RecordsetPtr接口提供了对记录集的精细控制,如记录锁定和游标管理。它可以独立创建数据连接,或者利用已有的连接指针。在处理多个记录集时,最好使用已建立连接的全局_ConnectionPtr,再通过_RecordsetPtr...

    SqlServer2008--学习笔记

    包括创建、删除以及修改数据库的操作方法,同时也详细介绍了T-SQL语句中数据表的常用术语、系统数据库的相关知识以及T-SQL语句在数据表上的应用,如增加、删除字段,更新字段内容,以及数据查询的各种技巧和方法。...

    PL-SQL用户指南与参考(译)

    游标是PL/SQL中用于处理记录集的一种机制,可以实现对查询结果的逐行访问或批量处理。游标分为隐式游标和显式游标两种,其中显式游标需要显式打开、关闭并进行操作。 **4、游标FOR循环** 游标FOR循环是一种特殊的...

    百万数据查询优化技巧三十则

    - **影响**:不当的删除操作可能会导致大量的日志记录,从而影响性能。 - **技巧**:对于大型数据表的删除操作,可以考虑使用 `TRUNCATE TABLE` 代替 `DELETE`,因为前者不会记录日志,速度更快。 #### 知识点二十...

    数据库实验_编程相关.doc

    3. 第三个例子中,向student表中插入了三条新记录,其中Polity字段为NULL。使用CASE语句在查询时将NULL值转换为'群众',使得结果显示更加友好。 4. 第四个例子在score表中添加了一个class列,用于标识班级。然后...

Global site tag (gtag.js) - Google Analytics