下面以 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语法
查看可用如下方法:
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)
说明:查询的结果就是香蕉和葡萄在表中是有重复的,要把香蕉和葡萄的所有记录都查询出来,结果如图:
如果xin表的ID是自增列,则insert
into
xin(ENAME,
SNAME,
NEWNUM)select
MIN(ENAME)
AS
ENAME,
SNAME,
count(*)
AS
NEWNUM
from
jie
group
by
SNAME只要在asp代码中执行这个sql语句就可以了
select * from 表 where b in (select b from 表 group by b having count(*)>1)
以上,希望对你有所帮助!