热门搜索 :
考研考公
您的当前位置:首页正文

查询同一表内多字段同时重复记录的SQL语句

2023-11-11 来源:东饰资讯网

比如现在有一人员表  (表名:peosons)若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来

select   p1.*   from   persons   p1,persons   p2   where   p1.id<>p2.id   and   p1.cardid   =   p2.cardid   and   p1.pname   =   p2.pname   and   p1.address   =   p2.address

可以实现上述效果.

查询同一表内多字段同时重复记录的SQL语句

标签:where   身份证   sql   sel   重复   重复记录   select   res   完全   

小编还为您整理了以下内容,可能对您也有帮助:

一个表中有重复记录如何用SQL语句查询出来?

select * from tablename where 重复字段1 in (select 重复字段1 from tablename group by 重复字段1,重复字段2 having count(*)>1)。

SQL重复记录查询方法:

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

select * from people

where peopleId in (select   peopleId from   people group by   peopleId having count (peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

delete from people 

where peopleId in (select   peopleId from people group by   peopleId   having count (peopleId) > 1)

and rowid not in (select min(rowid) from   people group by peopleId having count(peopleId )>1)

3、查找表中多余的重复记录(多个字段) 

select * from vitae a

where (a.peopleId,a.seq) in   (select peopleId,seq from vitae group by peopleId,seq having

在PL/SQL中,查找表中多条重复记录(多个字段重复,有一个字段不重复)

做了一个简单的例子:

select c1, WMSYS.WM_CONCAT(c2)

from (select 1 as c1, 2 c2

from al

union all

select 1, 3 c2 from al)

group by c1

那你的问题可以这样:

select id,序列号,名称,位置,WMSYS.WM_CONCAT(端口)

from 表

group by id,序列号,名称,位置

这样就可以了,WMSYS.WM_CONCAT这个是类似字符串聚合函数的东东,一个缺点是重复记录不能太多.不然这个东西会放不下.(好像是varchar2(4000)的长度以内,这个东西也可以自己重写的,就没有这方面的了)

如果你的版本不支持的话,可以再聊,或者找下相关资料也可以.

希望对你有所帮助,祝你好运~~追问刚开始运行的时候报not a single-group group function错误,后来找到原因了,所有字段都要group by ,非常感谢

SQL 中同一个表中有多个字段有重复值,该如何筛选

oracle select * from 表名 where rowid in(select distinct rowid, count(1) over(partition by 可能存在重复值的字段) from 表名 where count(1) over(partition by 可能存在重复值的字段) > 1)

如何用SQL查询一个表中某几个列相同的数据?

删除数据库中重复数据的几个方法
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……

方法一
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

方法二

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)

如何用SQL查询一个表中某几个列相同的数据?

删除数据库中重复数据的几个方法
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……

方法一
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

方法二

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp

发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集

select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)

如何用一条SQL语句查询数据库重复记录24

方法如下:
select * from 你的表名
a where id=(select min(id) from 你的表名 whereitem_id=a.item_id)
在查询之前先把数据库表中的第一行复制到sid里在去,然后让sid和下面的每一行进行比较
取所有相同的行的最小的一下,也可以取最大的,结果是一样的。
这样让所有的行都比较不就得到不重复的数据了。

如何用一条SQL语句查询数据库重复记录24

方法如下:
select * from 你的表名
a where id=(select min(id) from 你的表名 whereitem_id=a.item_id)
在查询之前先把数据库表中的第一行复制到sid里在去,然后让sid和下面的每一行进行比较
取所有相同的行的最小的一下,也可以取最大的,结果是一样的。
这样让所有的行都比较不就得到不重复的数据了。

sql查询同一表内所有字段重叠数据,比如:第一行9999999;第二行00000;第九十行为111,查询出来!

CREATE TABLE #tb

( id INT)

INSERT INTO #tb VALUES(9999),(123456),(121),(5555),(999),(0000)

SELECT * FROM #tb WHERE id%REPLICATE(1,LEN(id)) =0

sql语句,在同一张表中筛选出重复的行 至少 2个字段都是重复的行,这个语句应该怎么写?

SELECT t.* FROM 表1 t1

INNER JOIN

(

select

字段1,字段2

from 表1

group by 字段1,字段2

having count(字段1)>1

) t2

ON t1.字段1=t2.字段1

AND t1.字段2=t2.字段2追问

这个我试了一下  ,貌似不行哈?、、就是类似上图的表 我是想找出 有没有重复的行(列0 和列1 都同时重复)        或者是 找出   列0 和列1 都不同时重复的行、  谢谢了 朋友 能不能写的具体点 新手~~~

Top