SQL中存在很多相同内容时只提取其中一条的方法
发布时间:2024-05-29 16:35:06 所属栏目:MsSql 来源:DaWei
导读: 这篇文章主要介绍“SQL中存在很多相同内容时怎么只提取其中一条”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL中存在很多
这篇文章主要介绍“SQL中存在很多相同内容时怎么只提取其中一条”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SQL中存在很多相同内容时怎么只提取其中一条”文章能帮助大家解决问题。 SQL中经常遇到如下情况,在一张表中有两条记录基本完全一样,某个或某几个字段有些许差别, 这时候可能需要我们踢出这些有差别的数据,即两条或多条记录中只保留一项。 如下:表timeand 针对time字段相同时有不同total和name的情形,每当遇到相同的则只取其中一条数据,最简单的实现方法有两种 1、select time,max(total) as total,name from timeand group by time;//取记录中total最大的值 或 select time,min(total) as total,name from timeand group by time;//取记录中total最小的值 上述两种方案都有个缺点,就是无法区分name字段的内容,所以一般用于只有两条字段或其他字段内容完全一致的情况 2、select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total); 此中方案排除了方案1中name字段不准确的问题,取的是total最大的值 上面的例子中是只有一个字段不相同,假如有两个字段出现相同呢?要求查处第三个字段的最大值该如何做呢? 其实很简单,在原先的基础上稍微做下修改即可: 原先的SQL语句: select * from timeand as a where not exists(select 1 from timeand where a.time = time and a.total<total); 可修改为: select * from timeand as a where not exists(select 1 from timeand where a.time = time and (a.total<total or (a.total=total and a.outtotal<outtotal))); 其中outtotal是另外一个字段,为Int类型 以上就是关于“SQL中存在很多相同内容时怎么只提取其中一条”的相关知识,感谢各位的阅读。 (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MsSql新版本功能详解:一次掌握全新技术
- 解析SQL2005中如何使用CLR函数获取行号
- SQL Server -- 回忆笔记(一):初见数据库
- SQL Server比较常见数据类型详解
- sql-server C 将SQLServer 2000数据库导出到XML的最简单方法
- Linux编译mssql扩展使用php连接sqlserver2008的使用步骤
- 详解删除SQL Server 2005 Compact Edition数据库
- SQL数据库优化大总结之百万级数据库优化方案
- sqlserver中datetime和timestamp之间的区别?
- SqlServer数据库提示 “tempdb” 的日志已满 问题解决方案
推荐文章
站长推荐