当前位置: 代码迷 >> Sql Server >> MSSQL除去重复数据
  详细解决方案

MSSQL除去重复数据

热度:105   发布时间:2016-04-24 09:28:13.0
MSSQL去除重复数据
本帖最后由 liweuyi 于 2015-01-15 21:36:46 编辑
请教一个 关于sql数据去除重复的语句 我现在是这样写的
delete from [dbo].[testdata] 
WHERE
([ID],[dDate],[dTime],[MachineID]) in (select[ID],[dDate],[dTime],[MachineID]  
from [dbo].[testdata] group by 
[ID],[dDate],[dTime],[MachineID]  having count(*) > 1)

 判断重复数据的标准是三个字段([ID],[dDate],[dTime],[MachineID]) 但是在mssql里不行 请问我需要怎么改写?

报的错误是 在应使用条件的上下文(在 ',' 附近)中指定了非布尔类型的表达式。  

in在MSSQL里面不能包含多个字段么?

------解决思路----------------------
delete from [dbo].[testdata] 
WHERE
CAST([ID]AS VARCHAR)+CAST([dDate]AS VARCHAR)+CAST([dTime]AS VARCHAR)+CAST([MachineID]AS VARCHAR)
in (select CAST([ID]AS VARCHAR)+CAST([dDate]AS VARCHAR)+CAST([dTime]AS VARCHAR)+CAST([MachineID]AS VARCHAR)  
from [dbo].[testdata] group by 
[ID],[dDate],[dTime],[MachineID]  having count(*) > 1)
你可以参考一下
  相关解决方案