当前位置:  数据库>sqlserver

Sql Server里删除数据表中重复记录的例子

    来源: 互联网  发布时间:2014-10-15

    本文导语:  [项目] 数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除! [分析] 1、生成一张临时表new_users,表结构与users表一样; 2、对users表按id做一个循环,每从users表中读出一个条记录...

[项目]

数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除!

[分析]

1、生成一张临时表new_users,表结构与users表一样;
2、对users表按id做一个循环,每从users表中读出一个条记录,判断new_users中是否存在有相同的u_name,如果没有,则把它插入新表;如果已经有了相同的项,则忽略此条记录;
3、把users表改为其它的名称,把new_users表改名为users,实现我们的需要。

[程序]

代码如下:

declare @id int,@u_name varchar(50),@u_pwd varchar(50)
set @id=1

while @id<1000
begin
       if exists (select u_name from users where u_id=@id)       
       begin
               select @u_name=u_name,@u_pwd=u_pwd from users where u_id=@id  --获取源数据
               if not exists (select u_name from new_users where u_name=@u_name) -- 判断是否有重复的U-name项
               begin
                       insert into new_users(u_name,u_pwd) values(@u_name,@u_pwd)
               end
       end
       set @id=@id+1
end

select * from new_users

[方法二]
假设Users表中有相同的name项,id为主键标识字段。现在要求去掉Users中重复的name项。

1、把不重复的ID保存在一个tmp1表里面。

代码如下:
select min([id]) as [id]  into tmp1 from Users group by [name]

2、从Users表中选取tmp1表中的id项,将相应id的数据写入表tmp2
代码如下:
select * into tmp2 from Users where [id] in( select [id] from tmp1)

3、把Users、tmp1两张表Drop掉
代码如下:
drop table Users
drop table tmp1

4、把tmp2表改名为User表

[注]如果没有主键标识id,可以增加一个标识字段,方法如下:

代码如下:
select identity(int,1,1) as autoID, * into tmp0 from Users

[情况三]
假设有一个User表,id为主键标识字段,但有一些完全重复的项。现在要求去掉Users中这些完全重复的项,只保留一条。

1、把不重复的数据保存在tmp1表中

代码如下:
select distinct * into tmp1 from Users

2、把Users表删除
代码如下:
drop table Users

3、把tmp1表中的数据导入到Users表
代码如下:
select * into Users from tmp1

4、把tmp1表删除
代码如下:
drop table tmp1

    
 
 

您可能感兴趣的文章:

  • sql2005 数据表存在与否及删除的判断语句
  • 统计sql server用户数据表大小(记录总数和空间占用情况)的代码
  • 查看并导出sql数据表字段的注释信息
  • 查询sql server中所有数据表的记录行数与表空间大小的代码(推荐)
  • 修改sql server数据表的一些脚本
  • Sql Server中清空所有数据表中的记录
  • Sql Server清空所有数据表中的记录的三种方法
  • Sql Server里删除数据表中重复记录的例子
  • T-SQL入门教程之创建数据表实例
  • sql server简单查询的例子(sql入门)
  • sql server 使用ntile获取数据的例子
  • Sql Server一次更新多列数据的例子
  • SQL SERVER导入、导出文本文件的例子
  • SqlServer中用exec处理sql字符串中含有变量的小例子
  • sql语句提取括号中文字的例子
  • 我急需一个JSP+sql2000编写的论坛,哪位能提供一个完整的例子,不胜感激----在线等待
  • sql自连接查询的例子(图文)
  • sql2005递归查询的例子
  • 拼接SQL字符串与日期模糊查询的例子
  • Sql Server 删除主键与重建主键的例子
  • Sql Server 数据纵列转横列的例子
  • SQL分组统计简单例子
  • sql 插入单引号、添加、删除字段的例子
  • sql 游标的使用—游标FOR循环小例子
  • 用t-sql语句完整备份数据库的例子
  • sql server日期格式化处理的例子
  • sql通配符三个例子
  • sql union查询与排序的例子
  • sql server 跨服务器查询的例子
  •  
    本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql server 删除表1某些数据的同时自动删除表2的相关数据的sql代码
  • 安装SQL2008时提示删除SQL2005Express工具的解决方法
  • sql server 2005删除用户时“数据库主体在该数据库中拥有架构,无法删除”错误的解决办法
  • SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)
  • sql语言中delete删除命令语句详解
  • 重装MS SQL Server 2000前必须彻底删除原安装文件的方法
  • Sql Server 2000删除数据库备份文件
  • sql 存储过程批量删除数据的语句
  • jsp+SQL删除记录出错,请指教!
  • SQL Server 不删除信息重新恢复自动编号列的序号的方法
  • oracle数据库添加或删除一列的sql语句
  • sql server临时表删除方法
  • sql server 临时表的删除示例
  • MySQL中批量删除指定前缀表的sql语句
  • sql server 2005维护计划无法删除怎么办呢?
  • 使用SQL Server判断文件是否存在后再删除(详解)
  • sql级联删除的方法介绍
  • SQL 级联删除 级联更新的代码
  • sql 添加删除修改字段的方法介绍
  • SQL建立数据库及删除数据库命令
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

    浙ICP备11055608号