A. sql删除重复列
共享下我所知道的..
1.如果要查找重复的列(具体步骤我就不说了,看sql语句你应该可以明白过程)
select
*
from
表名
where
重复的字段名in
(SELECT
重复的字段名
FROM
表名
group
by
重复的字段名
having
count(1)>1)
2.删除重复的列保留最早插入的那个(使用这种方法必须要有标示字段,你的好像没有)...
DELETE
FROM
表名
WHERE
重复的字段名
in
(SELECT
重复的字段名
FROM
表名
group
by
重复的字段名
having
count(1)>1)
and
你表中的第一个字段
not
in
(select
min(你表中的第一个字段)
from
表名
group
by
重复的字段名
having
count(1)>1)
最后要告诉你的是:看仔细了:
上面的删除方法是不能删除你所要删除的那列,因为你表中的数据没有唯一的标示,建议你从新建张表,设一个自增长字段..这样这张表就不会出现你所遇到的问题了.
B. 如何在Sql中将重复的所有字段删除
用SQL语句,删除掉重复项只保留一条
在几千条记录里,存在着些相同的记录,如何能用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
peopleName
in
(select
peopleName
from
people
group
by
peopleName
having
count(peopleName)
>
1)
and
peopleId
not
in
(select
min(peopleId)
from
people
group
by
peopleName
having
count(peopleName)>1)
3、查找表中多余的重复记录(多个字段)
select
*
from
vitae
a
where
(a.peopleId,a.seq)
in
(select
peopleId,seq
from
vitae
group
by
peopleId,seq
having
count(*)
>
1)
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete
from
vitae
a
where
(a.peopleId,a.seq)
in
(select
peopleId,seq
from
vitae
group
by
peopleId,seq
having
count(*)
>
1)
and
rowid
not
in
(select
min(rowid)
from
vitae
group
by
peopleId,seq
having
count(*)>1)
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select
*
from
vitae
a
where
(a.peopleId,a.seq)
in
(select
peopleId,seq
from
vitae
group
by
peopleId,seq
having
count(*)
>
1)
and
rowid
not
in
(select
min(rowid)
from
vitae
group
by
peopleId,seq
having
count(*)>1)
6.消除一个字段的左边的第一位:
update
tableName
set
[Title]=Right([Title],(len([Title])-1))
where
Title
like
'村%'
7.消除一个字段的右边的第一位:
update
tableName
set
[Title]=left([Title],(len([Title])-1))
where
Title
like
'%村'
8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录
update
vitae
set
ispass=-1
where
peopleId
in
(select
peopleId
from
vitae
group
by
peopleId
C. sql去除重复的项
distinct
b,a,c
------是将b
a
c完全相的记录只取一条,你的数据里根本没有完全相同的记录,所以会全部输出;
你要的数据可以用下面的sql
select
*
from
(select
t.*,row_number()
over(partition
by
b
order
by
b)
numid
from
table
t)
a
where
a.numid=1;
D. 用SQL语句删除重复数
--声明变量
Declare @ID Int, @PosNo Int
Declare @Table Table(
ID Int,
PosNo int
)
Declare cur Cursor Static READ_ONLY For
Select ID, PosNo
From 表
Order By EmpID, ID
Open cur
Fetch From cur Into @ID, @PosNo
While @@FETCH_STATUS = 0
Begin
If Exists(Select * From @Table Where PosNo = @PosNo)
Begin
Delete 表 Where ID = @ID
End
Else
Begin
Insert Into @Table (ID, PosNo)
Values (@ID, @PosNo)
End
Fetch Next From cur Into @ID, @PosNo
End
Close cur
DeAllocate cur
E. sql去除重复的项
首先你是要去除,也就是说删除数据,还是只是查询不重复数据,如果是删除重复数据 就不该用select;暂且认为 你是查询数据;
其次,你的意思应该是去除 b 列中重复的数据,但是你没给定 确切的条件,比如,b列出现了重复数据,那你是要保留那一条呢,
再就是你那个查询:select distinct b,a,c from table 的意思是将三列 都重复的去除,只有三列都重复了 才会去除。你这里的数据明显 不存在三个列都重复的数据,所以查询 出来的还是原 表中的数据。
F. 如何在SQL中删除某一列的重复值
查询不重复:
select*from表名where列1in(selectmin(列1)from表名groupby列3)
删除重复数据:
谨慎使用
delete表名where列1notin(selectmin(列1)from表名groupby列3)
G. SQL 删除列中的重复值
图片很模糊看不清,你看看下面方法可以吗
去除表a的重复值
user
mydb
--进入需要修改的数据库中
select
distinct
*
into
#tmp
from
[a]
--先将数据存入一张临时表中,剔除重复项
truncate
table
[a]
--然后清空原表
insert
into
[a]
select
*
from
#tmp
--再将临时表内容插入表a
drop
table
#tmp
--删除临时表
你的col001
是一样的啊,你表里有主键码,或者自增字段?
你表里不算有重复值的啊,虽然前边一样,后边字段是不一样的,这样还算重复?
H. SQL怎么去除某一列的重复项
假设存在一个主键ID,Name为重复列--下面这句可以查出所有的没有重复的数据select * from 表 as a where ID=(select min(ID) from 表 where Name=a.Name) --根据上面这句就可以删除所有重复项的数据delete from 表 where ID not in(select ID from 表 as a where ID=(select min(ID) from 表 where Name=a.Name))好了~
I. SQL怎么去除某一列的重复项
假设存在一个主键ID,Name为重复列
--下面这句可以查出所有的没有重复的数据
select
*
from
表
as
a
where
ID=(select
min(ID)
from
表
where
Name=a.Name)
--根据上面这句就可以删除所有重复项的数据
delete
from
表
where
ID
not
in(
select ID
from
表
as
a
where
ID=(select
min(ID)
from
表
where
Name=a.Name)
)
好了~