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. iis配置PHP

    今天在服务器上配置PHP出现在下面的问题:“HTTP 错误 500.0 - Internal Server Error,C:\php\php-cgi.exe - FastCGI 进程意外退出”,下面说 ...

  2. C语言库函数大全及应用实例十二

    原文:C语言库函数大全及应用实例十二                                          [编程资料]C语言库函数大全及应用实例十二 函数名: setrgbpalette ...

  3. EasyUI的后台界面

    EasyUI的后台界面搭建及极致重构 〇.前言 要了解一个东西长什么样,至少得让我们能看到,才能提出针对性的见解.所以,为了言之有物,而不是凭空漫谈,我们先从UI说起,后台管理页面的UI我们将使用应用 ...

  4. Windows,查看进程的连接的IP地址,批量模式,最后做成Excel

    1.CMD -> netstat -ano,复制到UltraEdit 2.把双空格替换为单空格,这种替换要进行很多次,直到全部替换完.其次点20次替换就行了. 3.单空格替换为 ^t,也就是制表 ...

  5. Ninject.Extensions.

    最近在使用IoC进行一个较复杂的项目进行架构,在IoC的选择上让我很是纠结.首先我不喜欢大量的配置文件进行配置,那简直是噩梦,比学习一门编程语言还痛苦.我喜欢前一段时间看EF的CodeFirst的那种 ...

  6. MvcPager分页控件以适用Bootstrap

    随笔- 9  文章- 0  评论- 33  修改MvcPager分页控件以适用Bootstrap 效果(含英文版,可下载)   软件开发分页效果必不可少,对于Asp.Net MVC 而言,MvcPag ...

  7. solr中重跑索引

    solr与.net系列课程(八)solr中重跑索引的注意事项   solr与.net系列课程(八)solr中重跑索引的注意事项 我们如果在项目中使用solr,那肯定就是把数据库中的数据跑进solr服务 ...

  8. [译]Java 设计模式之备忘录

    (文章翻译来自Java Design Pattern: Memento) memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态. 在将来时空旅行将成为显示 ...

  9. 使用CountDownLatch和CyclicBarrier处理并发线程

    闲话不说,首先看一段代码: { IValueCallback remoteCallback = new IValueCallback.Stub() { <strong><span s ...

  10. [转] 关于 Eclipse 导出 Android项目 JavaDoc 详细过程

    关于Eclipse 导出JavaDoc过程中,遇到的问题 ,google 了一下 ,网友们 总说不一 ,最终 还是 搞定了 现在分享给大家 希望对大家有所帮助 用Eclipse默认的 JavaDoc需 ...