SQL中分页与distinct冲突解决方案

SELECT list.* FROM(SELECT ROW_NUMBER() OVER(ORDER BY salesStatus.LastTime DESC,school.SchoolID DESC) AS rownumber, school.SchoolID,school.SchoolName,school.ProvinceID,school.CityID,school.DistrictID,salesStatus.IsHave,salesStatus.IsLocked,salesStatus.IsShortProtect,
salesStatus.IsAgent,salesStatus.ExpireAllot,sExt.CreatorProtect,school.SchoolLevel,
CHARINDEX(‘3‘,SchoolLevel)  AS IsShengZhongDian,CHARINDEX(‘5‘,school.SchoolLevel) AS IsBaiQiang FROM Area_School AS school LEFT JOIN B_ProductSalesStatus AS salesStatus on salesStatus.SchoolID=school.SchoolID LEFT JOIN B_SchoolOperateAuthExt AS sExt ON school.SchoolID = sExt.SchoolID {0} {1})  AS list WHERE ROWNUMBER BETWEEN  {2} AND {3}

时间: 2024-10-10 21:01:36

SQL中分页与distinct冲突解决方案的相关文章

述 SQL 中的 distinct 和 row_number() over() 的区别及用法

1 前言 在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,显示多条记录,这就有违咱们的初衷啦!因此,为了避免这种情况的发生,咱们就需要进行"去重"处理啦,那么何为"去重"呢?说白了,就是对同一字段让拥有相同内容的记录只显示一条记录. 那么,如何实现"去重"的功能呢?对此,咱们有两种方式可以实现该

详述 SQL 中的 distinct 和 row_number() over() 的区别及用法

1 前言 在咱们编写 SQL 语句操作数据库中的数据的时候,有可能会遇到一些不太爽的问题,例如对于同一字段拥有相同名称的记录,我们只需要显示一条,但实际上数据库中可能含有多条拥有相同名称的记录,从而在检索的时候,显示多条记录,这就有违咱们的初衷啦!因此,为了避免这种情况的发生,咱们就需要进行"去重"处理啦,那么何为"去重"呢?说白了,就是对同一字段让拥有相同内容的记录只显示一条记录. 那么,如何实现"去重"的功能呢?对此,咱们有两种方式可以实现该

sql中对查询出来的数据进行分页

当sql中存储的数据量比较大时,在web中 数据显示时都会对数据进行分页,分页不会在客户端进行分页,而是在数据库查询过程中进行了分页. sql代码: DECLARE @pageindex INT; --页码 DECLARE @pagesize INT; --每页显示的记录数量 SET @pageindex=; SET @pagesize=5; SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY UserName) AS rownumber,* FRO

php中并发读写文件冲突的解决方案(文件锁应用示例)

PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域.PHP的文件后缀名为php. 本文为大家讲解的是php中并发读写文件冲突的解决方案(文件锁应用示例),感兴趣的同学参考下. 在这里提供4种高并发读写文件的方案,各有优点,可以根据自己的情况解决php并发读写文件冲突的问题. 对于日IP不高或者说并发数不是很大的应用,一般不用考虑这

SQL中distinct的用法和left join查询的含义

SQL中distinct的用法 1.作用于单列 2.作用于多列 3.COUNT统计 4.distinct必须放在开头 5.其他 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值. 表A: 表B: 1.作用于单列 select distinct name from A 执行后结果如下: 2.作用于多列 示例2.1 select distinct name, id from A 执行后结果如下: 实际上是根

解决hibernate对Sql Server分页慢的问题

一.hibernate分页 hibernate对MsSql的伪分页 分页是web项目中比不可少的一个功能,数据量大的时候不能全部展示必然要用到分页技术.相信大家对hibernate中的分页都不陌生: Java代码   public Query setMaxResults(int maxResults); public Query setFirstResult(int firstResult); 只要调用了这两个方法并设置好参数,hibernate自动分页完全屏蔽了底层数据库分页技术,这也是众多开

yii中分页功能的使用

CDbCriteria就是这个类包的使用,这个类包是yii自带专门用来处理类似分类这样的功能的.而我们使用yii框架然后调用这个方法会起到事半功倍的效果,会发现使用这个能够节省很多的时间,让你快速的使用PHP中分页的功能. 还要使用的一个类包就是CPagination,具体的元素属性就不解释了,可以直接连接过去看API 第一步: 在控制器里面加上一下的代码: $criteria = new CDbCriteria(); $criteria->alias = 'post';//要查询表的别名 $c

SQL中常见语句

SQL中常见语句笔记: --替换字段中的回车符和换行符 UPDATE [dbo].[MGoods_Test] SET GoodsName = REPLACE(GoodsName, CHAR(13) + CHAR(10), '') --删除表命令 DROP TABLE [dbo].[MGoods_Test] --删除表中数据命令 DELETE FROM [dbo].[MGoods_Test] --逐行删除 有日志记录 TRUNCATE TABLE [dbo].[MGoods_Test] --TRU

SQL中CRUD C——create 添加数据 R——read 读取数据 U——update 修改数据 D——delete 删除数据

在SQL server中对数据库的操作: 删除表:drop table 表名修改表:alter table 表名 添加列add 列名 列类型alter table 表名 drop column 列名 删除数据库drop database 数据库名 CRUD操作C——create 添加数据 R——read 读取数据 U——update 修改数据 D——delete 删除数据 1.添加数据insert into 表名 values('第一列值','第二列值')——数据库中用单引号 每一列都要添加 第