日期:2014-05-18 浏览次数:20898 次
select distinct * into #tb from tb delete from tb --truncate insert into tb select * from #tb drop table #tb
------解决方案--------------------
--为神马我的1,3楼,我看不见。。。 select id=identity(int,1,1),* into #t from TBB delete #t where exists(select 1 from #t as A where A.电话=#t.电话 and A.id>#t.id) truncate table TBB insert into TBB(姓名,电话) select 姓名,电话 from #t
------解决方案--------------------
----------------------------
-- Author :fredrickhu(小F,向高手学习)
-- Date :2012-05-25 16:31:53
-- Version:
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86)
-- Apr 22 2011 11:57:00
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition on Windows NT 6.1 <X64> (Build 7600: ) (WOW64)
--
----------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([姓名] varchar(6),[电话] int)
insert [tb]
select '张三',5566777 union all
select '张三',5566777 union all
select '张三',5566777 union all
select '李四',8877542 union all
select '王小二',3305444 union all
select '兔子',8877542
--------------开始查询--------------------------
alter table tb add ID int identity--新增标识列
go
delete a from tb a where exists(select 1 from tb where 姓名=a.姓名 and 电话=a.电话 and ID>a.ID)--只保留一条记录
go
alter table tb drop column ID--删除标识列
select * from tb
----------------结果----------------------------
/* 姓名 电话
------ -----------
李四 8877542
兔子 8877542
王小二 3305444
张三 5566777
(4 行受影响)
*/
------解决方案--------------------
----------------------------
-- Author :fredrickhu(小F,向高手学习)
-- Date :2012-05-25 16:31:53
-- Version:
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (Intel X86)
-- Apr 22 2011 11:57:00
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition on Windows NT 6.1 <X64> (Build 7600: ) (WOW64)
--
----------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([姓名] varchar(6),[电话] int)
insert [tb]
select '张三',5566777 union all
select '张三',5566777 union all
select '张三',5566777 union all
select '李四',8877542 union all
select '王小二',3305444 union all
select '兔子',8877542
--------------开始查询--------------------------
alter table tb add ID int identity--新增标识列
go
delete a from tb a where exists(select 1 from tb where 电话=a.电话 and ID>a.ID)--只保留一条记录
go
alter table tb drop column ID--删除标识列
select * from tb
----------------结果----------------------------
/*姓名 电话
------ -----------
张三 5566777
王小二 3305444
兔子 8877542
(3 行受影响)
*/