1.取得不重复的数据select*from Persons where Id in
(
SELECTMAX(Id) AS Expr1
FROM Persons
GROUPBY Name, Gender
)2.删除重复的数据【MAX换成MIN会有不同的效果】deletefrom Persons
where Id notin
(
SELECTMAX(Id) AS Expr1
FROM Persons
GROUPBY Name, Gender
)原文:http://www.cnblogs.com/zuqing/p/4878856.html
SELECT * FROM 想查询的表WHERE 条件列 IN(SELECT MAX/MIN(条件列) FROM TEST.dbo.TEST_1 GROUP BY 想要查找的列) 例如一表中有 员工姓名、编号、所在部门、录入时间要求,找到每个部门中最后一个加入的员工信息 在TEST数据库中建测试用表如下:USE [TEST]GO/****** Object: Table [dbo].[TEST_1] Script Date: 2021/7/15 16:22:01 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[TEST_1]( [NAME...
代码如下:
declare @max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段
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 fetch cur_rows into @id,@max end
close cur_rows set rowcount 0 方法二
有两个意义上的重复记录,一是完...
select * from Persons where Id in
(
SELECT MAX(Id) AS Expr1
FROM Persons
GROUP BY Name, Gender
)2.删除重复的数据【MAX换成MIN会有不同的效果】delete from Persons
where Id not in
(
SELECT MAX(Id) AS Expr1
FROM Persons
GROUP BY Name, Gender
)
MSSQL取得或删除重复数据标签:本文系统来源:http://www.cnblogs.com/zuqing/p/4878856.html
@max integer,@id integer
declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 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
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0方法二:利用临时表处理方法二 有两个意义上的重复记录,一是完...
select * from test
2 where name in (select name from Y_ShipOrder group by name having count
3 (name) > 1)2.查询多列重复1 SELECT a.* FROM test a,(
2 SELECT name,code
3 FROM test
4 GROUP BY name,code
5 HAVING COUNT(1)>1
6
7 ) AS b
8 WHERE a.name=b.name AND a.code=b.code SQL Server查询重复数据标签:where group and 单列 serve 多列 code bsp font 本文系统来源:https://www.cnblogs.com...
如果表中有IDSELECT * FROM dbo.tblMainUser WHERE ID NOT IN (SELECT MAX(ID) FROM tblMainUser GROUP BY UserName,pwd)
如果表中没有自增IDSELECT IDENTITY(INT,1,1) AS id,* INTO #temp FROM TblTest1SELECT *FROM #temp WHERE id in(
SELECT MAX(id)FROM #temp GROUP BY UserName,Pwd HAVING count(*)>1 )
sqlserver 去重复数据标签:highlight csharp nbsp HERE max rom select sharp pre 本...
1.有的时候,在数据库中存在一些重复的数据,但是我们又想统计某个字段的,重复的要剔除掉,如图所示: 在上面的图我们可以看到,id=2,3 id=4,5的4条数据都重复了,我们统计amount只要其中的一条。sql语句如下: select sum(b.money) as 金额 from (select1.有的时候,在数据库中存在一些重复的数据,但是我们又想统计某个字段的值,重复的要剔除掉,如图所示:在上面的图我们可以看到,id=2,3 id=4,5的4条数据都重复了,我们统计a...
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……方法一 代码如下:declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 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 主字段 = @...
SQL Server数据库操作中,有时对于表中的结果集,满足一定规则我们则认为是重复数据,而这些重复数据需要删除。如何删除呢?本文我们通过一个例子来加以说明。
例子如下:
如下只要companyName,invoiceNumber,customerNumber三者都相同,我们则认为是重复数据,下面的例子演示了如何删除。declare @InvoiceListMaster table ( ID int identity primary key , companyName Nchar(20), invoiceNumber int, CustomerNumber int, r...
--创建测试表
CREATE TABLE [dbo].[testtab](
[id] [nchar](10) NULL,
[name] [nchar](10) NULL
) ;
--向测试表插入测试数据
insert into testtab values(1,1);
insert into testtab values(1,1);
insert into testtab values(2,2);
insert into testtab values(2,2);
insert into testtab values(3,3);
insert into testtab values(3,3); --创建临时表并向临时表中插入测试表testtab中数据以及添加自增id:autoID
sel...
/************************************************************ * Code formatted by setyg * Time: 2014/7/29 10:04:44 ************************************************************/ CREATE PROC HandleEmailRepeat
AS
DECLARE email CURSOR
FOR SELECT e.email ,e.OrderNo ,e.TrackingNo FROM Email20140725 AS e WHERE e.[status] = 0 ORDER BY e.email ,e.OrderNo ,e.TrackingNo BEGIN DECLARE @@email VARC...
方法一 代码如下: declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 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 fetch cur_rows into @id,@max end close cur_rows set rowcount 0 方法二 有两个意义上的重复记录,一是...
1.查询单列重复(table:表名,name 字段名):
select * from table
where name in (select name from table group by name having count(name) > 1)
2.查询多列重复(table:表名,name 字段名,code字段名):
SELECT a.* FROM table a,(SELECT name,codeFROM table GROUP BY name,codeHAVING COUNT(1)>1
) AS bWHERE a.name=b.name AND a.code=b.code