select company ,count(company) as coun into myls from mylist group by company having count(company)>1  --讲MyList重复的数据放到myls中

declare @id int
declare @company varchar(200)
declare @td table(id int,address nvarchar(200),linkman nvarchar(100),tel nvarchar(50),fax nvarchar(50),phone nvarchar(50),project nvarchar(200),product nvarchar(200),website nvarchar(100))
 --临时表,将重复的几条放入其中,拿出数据完整的insert到listok中
declare @address nvarchar(200)
declare @linkman nvarchar(100)
declare @tel nvarchar(50)
declare @fax nvarchar(50)
declare @phone nvarchar(50)
declare @project nvarchar(200)
declare @product nvarchar(200)
declare @website nvarchar(100)
 
set @id=0
set @company=''
                                                                                     --注:3082488=select count(*) from myls+1
set @id=isnull((select top 1 id from myls where id>@id order by id),3082488)
while @id>=3082488
begin
  set @company=(select company from myls where id=@id)
  insert into @td(id,address,linkman,tel ,fax,phone,project,product,website)
  select id,isnull(address,''),isnull(linkman,''),isnull(tel,'') ,isnull(fax,''),isnull(phone,''),cast(isnull(project,'') as nvarchar(200)),cast(isnull(product,'') as nvarchar(200)),isnull(website,'')
  from mylist2 where company=@company
----取出完整的信息
  set @address=isnull(select top 1 address from @td where address>''),'')
  set @linkman=isnull(select top 1 linkman from @td where linkman>''),'')
  set @tel=isnull(select top 1 tel from @td where tel>''),'')
  set @fax=isnull(select top 1 fax from @td where fax>''),'')
  set @phone=isnull(select top 1 phone from @td where phone>''),'')
  set @project=isnull(select top 1 project from @td where project>''),'')
  set @product=isnull(select top 1 product from @td where product>''),'')
  set @website=isnull(select top 1 website from @td where website>''),'')
  ----  讲完整的信息放入listok表
  insert into listok(company,address,linkman,tel,fax.phone,project,product,website)
  values(@company,@address,@linkman,@tel,@fax,@phone,@project,@product,@website)
  delete from mylist2 where id in(select id from @td)
  delete from @td
  delete from myls where id=@id
  set @id=0
  set @id=isnull((select top 1 id from myls where id>@id order by id),3082488)
  set @company=''
  set @address=''
  set @linkman=''
set @tel=''
  set @fax=''
  set @phone=''
  set @project=''
  set @product=''
  set @website=''

MS Sql Server 消除重复行 保留信息完整的一条 2011-11-26 13:19(QQ空间)的更多相关文章

  1. SQL Server删除重复行的6个方法

    SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考. 1.如果有ID字段,就是具有唯一性的字段 delect   ta ...

  2. SQL SERVER 合并重复行,行列转换

    引用自:http://www.cnblogs.com/love-summer/archive/2012/03/27/2419778.html sql server2000 里面如何实现oracle10 ...

  3. MS SQL Server 如何得到执行最耗时的前N条T-SQL语句-

    --得到最耗时的前N条T-SQL语句 --适用于SQL SERVER 2005及其以上版本 --给N赋初值为30 ;with maco as ( select top (@n) plan_handle ...

  4. sql server删除重复数据,保留第一条

    SELECT * FROM EnterpriseDataTools.Enterprise.CompanyMainwhere CompanyNo in (select CompanyNo from En ...

  5. SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变

    前提  本文仅讨论SQL Server查询时, 对于非复合统计信息,也即每个字段的统计信息只包含当前列的数据分布的情况下, 在用多个字段进行组合查询的时候,如何根据统计信息去预估行数的. 利用不同字段 ...

  6. ms sql server,oracle数据库实现拼接一列的多行内容

    项目中要将查询出的一列的多行内容拼接成一行,如下图:ypmc列. ms sql server: 网上查到相关资料如下:http://blog.csdn.net/rolamao/article/deta ...

  7. 字符串中去除多余的空格保留一个(MS SQL Server)

    大约2年前,写过一篇<字符串中去除多余的空格保留一个(C#)>https://www.cnblogs.com/insus/p/7954151.html 今天,Insus.NET使用MS S ...

  8. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  9. MS SQL SERVER 中的系统表

    MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行.   2 syscomments 包含每 ...

随机推荐

  1. Java发送get及post请求工具方法

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  2. 解决IIS7运行ASP提示错误:An error occurred on the server when processing the URL. Please contact the system administrator

    原文:解决IIS7运行ASP提示错误:An error occurred on the server when processing the URL. Please contact the syste ...

  3. 我的MYSQL学习心得(十三)

    原文:我的MYSQL学习心得(十三) 我的MYSQL学习心得(十三) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYS ...

  4. CodeSmith 生成代码

    使用CodeSmith 生成代码 CodeSmith是一款优秀的代码生成工具.在ORM中,它能帮助我们生成实体类.XML配置文件,从而简化了我们一部分的开发工作.下面简要说说它的基本用法. 1.  打 ...

  5. bat启动/停止oracle服务

    原文:bat启动/停止oracle服务 自己的电脑比较慢,尤其装了oracle10g后,服务开启和关闭用bat文件操作省事点 开启服务 @echo offnet start OracleService ...

  6. 终于有人把O2O、C2C、B2B、B2C的区别讲透了!

    终于有人把O2O.C2C.B2B.B2C的区别讲透了! 一.O2O.C2C.B2B.B2C的区别在哪里? O2O是online to offline分为四种运营模式: 1.online to offl ...

  7. [Phonegap+Sencha Touch] 移动开发24 包wp8.1的App,弹出软键盘输入框聚焦实施后,无移动采收率方法来解决接口

    这种现象不仅是现在显示phonegap包sencha touch的wp8.1该程序将出现(只wp8.1,wp8正常).其他js我测试了几个框架(app framework, jquery mobile ...

  8. TDD中的单元测试

    TDD中的单元测试写多少才够?   测试驱动开发(TDD)已经是耳熟能详的名词,既然是测试驱动,那么测试用例代码就要写在开发代码的前面.但是如何写测试用例?写多少测试用例才够?我想大家在实际的操作过程 ...

  9. socket串口通信

    SocketServer: #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #inclu ...

  10. Winform系列

    小菜学习编程-Winform系列(初学者)   前言 记得上次写<小菜的程序员道路(二)>,这篇文章的时候说过,要把工作以来整理的编程知识分享给大家,因为这半年来的工作实在是忙,现在也在忙 ...