sqlserver中重复数据值只取一条的sql语句_MsSql

复制代码 代码如下:

--建立数据表createtable TestData
(
ID int identity(1,1) primary key,
Data int,
ColA varchar(20),
ColB varchar(20)
)
go

--插入测试数据
declare @counts int
declare @i int
set @counts = 10000
set @i = 1

while @i<=@counts
begin
insert TestData (Data,ColA,ColB) values(cast(rand()*10000 as int),cast(rand() as varchar(20)),cast(rand() as varchar(20)))
set @i=@i+1
end

--获取数据(重复数据只取一条)
select * from TestData
where
id in
(
--根据Data分类获取数据最小ID列表
select min(id) from TestData
group by Data
)

时间: 2024-11-08 18:55:42

sqlserver中重复数据值只取一条的sql语句_MsSql的相关文章

SQLServer中字符串左对齐或右对齐显示的sql语句_MsSql

知识点: 函数 replicate 以下代码是实现如下功能: 复制代码 代码如下: declare @sql varchar(200), --需填充的字符串 @char varchar(4), --填充使用的字符 @len int --填充后的长度 select @sql='abc' select @char=' ' select @len=10 select (right(replicate(@char,@len)+@sql,@len)) 右对齐 ,@sql+replicate(@char,@

mysql查找删除重复数据并只保留一条实例详解

有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 50 1240 Abraham Lincoln High School 70 35 1241 Acalanes High School 120 89 1242 Academy Of The Canyons 30 30 1243 Agoura High School 89 40 1244 Agour

你真的会玩SQL吗?删除重复数据且只保留一条

在网上看过一些解决方法 我在此给出的方法适用于无唯一ID的情形 表:TB_MACVideoAndPicture 字段只有2个:mac,content mac作为ID,正常情况下mac数据是唯一的,由于操作失误导致数据插入多次,导致出现多个mac,content重复数据,现在只保留一条,删除多余的 大体思想是给重复数据一个自增ID,过滤出每组里面最小ID,删除原数据中所有重复数据再将最小ID插入 --查询出所有重复数据,并给定递增id SELECT IDENTITY( INT,1,1 ) AS i

SQLServer中字符串左对齐或右对齐显示的sql语句

知识点: 函数 replicate 以下代码是实现如下功能: 复制代码 代码如下: declare @sql varchar(200), --需填充的字符串 @char varchar(4), --填充使用的字符 @len int --填充后的长度 select @sql='abc' select @char=' ' select @len=10 select (right(replicate(@char,@len)+@sql,@len)) 右对齐 ,@sql+replicate(@char,@

在SQL Server中查询资料库的TABLE数量与名称的sql语句_MsSql

在SQL Server中 每一个database裡都有一个系统所产生的table sysobjects这一个table中记录了database中所有的table名称 我们可以用下面的SQL语法作查询的动作 复制代码 代码如下: Select Name,id from sysobjects where xtype = 'U' 其中xtype='U'代表使用的table,若是使用xtype='S' 则代表系统预设的table 在系统table中还有一个名叫syscolumns的table 他记录了栏

SQL语句实现删除重复记录并只保留一条_数据库其它

复制代码 代码如下: delete WeiBoTopics where Id in(select max(Id) from WeiBoTopics group by WeiBoId,Title having COUNT(*) > 1); SQL:删除重复数据,只保留一条用SQL语句,删除掉重复项只保留一条在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 复制代码 代码如下:  select * f

sql-SQL查询字段有重复只取一条数据

问题描述 SQL查询字段有重复只取一条数据 sql查询数据,其中一个字段的数据有重复,重复的数据其他字段除创建时间外都相同,重复数据如何只显示最新的那条数据? 解决方案 select * from t where 时间 in ( select max(时间) from table group by 相同字段1,相同字段2,相同字段3,.... ) 思路 : 查询字段相同的数据(group by 或 distinct) 然后取出时间最新 (max 或者 时间升序)的数据, 将以上结果放在临时表 然

SqlServer中的Null值空值问题

原文:SqlServer中的Null值空值问题 sql使用的是三值谓词逻辑,所以逻辑表达式返回的结果可以为True.False或者未知,在三值逻辑中返回True与不返回False并不完全一样,   SQL对查询过滤条件的处理:接受TURE  拒绝FALSE和UnKnown   SQL对CHECK约束的处理:接受FALSE 拒绝 TRUE和UNKnown   UNKNOWN的微妙之处在于当对它取反时  结果仍是UNKNOWN, 对两个Null值进行比较的表达式(Null=null),其计算的结果仍

SQL中遇到多条相同内容只取一条的最简单实现方法_MsSql

SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项. 如下:表timeand 针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种 1.select time,max(total) as total,name from timeand group by time;//取记录中total最大的值 或 select time,min(