怎么查看数据库表中某个字段的值有哪些重复记录

如题:表A中包含abc三个字段,共有10行记录,怎么查询10行记录中字段b的值是否有重复。重复的记录分别是哪几行?... 如题:
表A中包含a b c 三个字段,共有10行记录,怎么查询10行记录中字段b的值是否有重复。 重复的记录分别是哪几行?
展开
 我来答
刀塔的激情岁月
推荐于2019-08-30 · TA获得超过476个赞
知道答主
回答量:4
采纳率:0%
帮助的人:1.6万
展开全部

下面以 sqlserver数据库为例进行说明。

select * from TableA where b in (select  b from  TableA group  by  b having  count(b) > 1)

这样就列举出了b字段所有的重复数据,可以根据对应的行号,取得位于第几行。

如果要查询a字段或者c字段重复数据,可以相应的把上面的b字段替换成a字段或c字段即可。

举例:

1、创建表student

2、查询语句: select * from student where name in (select  name from  student group  by  name   having  count(name ) > 1)

这样就查出名字重复列,以及行号id。

扩展资料:

1. sqlserver其他相关的一些查询:

(1)删除表中多余的重复记录,重复记录是根据单个字段(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)

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

select * from vitae a where (a.peopleId,a.seq) in  

(select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)

(3)查找表中多余的重复记录(多个字段),不包含rowid最小的记录

select * from vitae a where (a.peopleId,a.seq)  in  

(select peopleId,seq from vitae group by peopleId,seq havingcount(*) > 1) and 

rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

2. SQL语言元素

1、子句,是语句和查询的组成部分。

2、表达式,可以生成标量值,也可以生成由列和行数据组成的表。

3、谓词,指定可以评估为SQL三值逻辑(3VL)(真/假/未知)或布尔真值的条件,用于限制语句和查询的效果,或用于更改程序流。

4、查询,根据特定条件检索数据。这是SQL的一个重要元素。

语句可能对架构和数据产生持久影响,或者可能控制事务,程序流,连接,会话或诊断。

SQL语句还包括分号(“;”)语句终止符。虽然并非每个平台都需要,但它被定义为SQL语法的标准部分。在SQL语句和查询中通常会忽略无关紧要的空格,从而可以更轻松地格式化SQL代码以提高可读性。

参考资料:百度百科-SQL语法



badkano
2015-09-01 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部

查看可用如下方法:

1、创建测试表,插入数据:

create table product
(id int,
name varchar(10),
totol int)

insert into product values (1,'香蕉',100)
insert into product values (2,'橘子',67)
insert into product values (3,'葡萄',89)
insert into product values (4,'苹果',235)
insert into product values (5,'香蕉',77)
insert into product values (6,'芒果',34)
insert into product values (7,'葡萄',78)
insert into product values (8,'梨',24)

表中数据如:

2、如果查询name列有重复的数据,可执行sql语句:

select * from product where name in (select name from product group by name having COUNT(*)>1)

说明:查询的结果就是香蕉和葡萄在表中是有重复的,要把香蕉和葡萄的所有记录都查询出来,结果如图:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潘蓓库飞沉
2019-06-04 · TA获得超过3830个赞
知道大有可为答主
回答量:3083
采纳率:33%
帮助的人:223万
展开全部
如果xin表的ID是自增列,则insert
into
xin(ENAME,
SNAME,
NEWNUM)select
MIN(ENAME)
AS
ENAME,
SNAME,
count(*)
AS
NEWNUM
from
jie
group
by
SNAME只要在asp代码中执行这个sql语句就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华夏日长兴
2009-08-26 · TA获得超过9592个赞
知道大有可为答主
回答量:6305
采纳率:85%
帮助的人:3735万
展开全部
select * from 表 where b in (select b from 表 group by b having count(*)>1)

以上,希望对你有所帮助!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式