mysql-mySQL的limit分页怎么转换成SQL server语句

问题描述

mySQL的limit分页怎么转换成SQL server语句

String sql="select " + str + " from product,shop where product.shop_id=shop.shop_id " + " limit " + (page *size) + "," + size;//通过limit来达到分页的效果_

其中定义了private String str = "product.product_id,product.category_id,product.shop_id,product.sub_category_id,product.city_id,product.product_title,"
+ "shop.shop_name,shop.shop_tel,shop.shop_address,shop.shop_area,shop.shop_open_time,shop.shop_lon,shop.shop_lat,shop.shop_traffic_info";

那么问题来了,上面的mySQL语句要怎么转换成SQL server语句达到分页的效果呢?

解决方案

sql server 的分页有几种方式,不过,我一般用row_number()函数解决:
select *
from(
select *, row_number() over(排序条件) as rowNum
from product
join shop on product.shop_id=shop.shop_id
) p
where p.rowNum >= 1 and p.rowNum < 6;
需要注意的是,row_number()的下标是从1开始的

解决方案二:

sql server支持row number可以用来分页,具体google下sql server分页,就有答案。

解决方案三:

select top size p.* from
(
select row_number() over(order by pro.product_id) as RowNumber , pro.*,shop.*
from product pro
join shop on product.shop_id=shop.shop_id
) p
where p.RowNumber > (page-1)*size
每页显示size条,page是页码号,根据product_id排序

解决方案四:

用子查询实现分页 不论oracle mysql sqlserver 通用

时间: 2016-03-28

mysql-mySQL的limit分页怎么转换成SQL server语句的相关文章

转换数据库-数据库:Oracle数据库转换成SQL server数据库

问题描述 数据库:Oracle数据库转换成SQL server数据库 把oracle数据库转换成SQL server数据库(2008 r2)版本的,数据迁移,大概百万条数据,有什么好的办法或者是执行语句嘛: 解决方案 我只知道可以把脚本倒出来 然后在sql中执行 解决方案二: http://wenku.baidu.com/link?url=TA7z0XmVyfKHyTQqiPwE6gAdkKbFG7ngBBL75mvjbRbAGFVElPyxOLFSvNT4YskRl8KLdeVdOlHc8a6

Access转换成SQL Server需要注意事项整理_数据库其它

一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的:  二,转换的方法  1,打开"控制面板"下"管理工具"中的"数据库源":  2,按"添加"添加一个新的数据源,在选择栏里选"Driver do microsoft Access  (*.mdb)",完成后将出现一个框,  在"数据库源"里面输入你想写的名称,我取名

jdbc sql语句-从网上下的mysql代码想改成sql server的,能帮我看看我改的代码对吗?

问题描述 从网上下的mysql代码想改成sql server的,能帮我看看我改的代码对吗? 网上的drop database bbs; create database bbs; use bbs; CREATE TABLE admin (id int(11) NOT NULL AUTO_INCREMENTusername varchar(50) DEFAULT NULLpassword varchar(50) DEFAULT NULL PRIMARY KEY (id)) ENGINE=InnoDB

oracel-如何把下面的oracle中的存储过程转换成sql的?

问题描述 如何把下面的oracle中的存储过程转换成sql的? create or replace procedure BJ_MAXCASENO_Get(InCount in number, OutMaxCaseNO out number) as tem number; begin select max(caseno) into tem from BJ_MAXCASENO; if tem is null then tem := 0; -- 没有数据时新增0进入 insert into BJ_MA

date-java Date转换成sql Date出现时间错误的问题

问题描述 java Date转换成sql Date出现时间错误的问题 SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); java.util.Date d = null; d = format.parse(newsDate); java.sql.Date date = new java.sql.Date(d.getTime()); 代码是这样的. java Date数据格式是 2015-10-08 09:21:33

UML的类图可以转换成SQL吗?

问题描述 UML的类图可以转换成SQL吗? 例如我画了一个UML的类图我可以把这个图转换成SQL文件吗?转换成SQL我直接就可以在数据库里生成表了 解决方案 我的认知uml类图转sql应该是不行的,我知道e-r图可以直接转sql

java-从 SQlite 检索字符串转换成 sql date 类型

问题描述 从 SQlite 检索字符串转换成 sql date 类型 我使用下面的代码把数据保存到 SQlite 数据库中( java.sql.Date) public String dateToDB ( Date date) { String convertedDate = date.toString(); // yyyy-mm-dd return convertedDate; } 如何从SQlite中检索字符串,把已复原的字符串转换成sql date 类型? private Date dat

link不是编译成lamda了么?那么数据库是怎么转换成sql的?

问题描述 link不是编译成lamda了么?那么数据库是怎么转换成sql的? link不是编译成lamda了么?那么数据库是怎么转换成sql的? 解决方案 Linq编译为表达式,因此可以由Provider转换为SQL.

怎么把MySql的触发器改成SQL Server的触发器

问题描述 CREATETABLE`tcckh`(`id`int(11)NOTNULLAUTO_INCREMENT,`bh`varchar(12)NOTNULLDEFAULT''COMMENT'编号',`mc`varchar(30)DEFAULTNULLCOMMENT'名称',`jc`varchar(6)DEFAULTNULLCOMMENT'简称',`mce`varchar(50)DEFAULTNULLCOMMENT'英文名称',`jce`varchar(6)DEFAULTNULLCOMMENT'