您的位置 首页 百科问答

sqlserver 使用 ROW_NUMBER() OVER(order by xxx)进行分页查询

问题补充说明:OVER(order by xxx) 这里的xxx必须是select 中的列名,不能用别名。 如果我select的字段中包含一个子查询如:select a.name as name ,(select sum(b.qty) from b where a.name = b.name) as qty from a group by name。 用以上方式进行分页查询时不能用OVE... OVER(order by xxx) 这里的xxx必须是select 中的列名,不能用别名。 如果我select的字段中包含一个子查询如:select a.name as name ,(select sum(b.qty) from b where a.name = b.name) as qty from a group by name。 用以上方式进行分页查询时不能用OVER(order by qty),只能order by 那段子查询,比较麻烦。请问有解决办法么?(由于使用的框架、需求的限制,语句比较复杂,没法优化) 展开

只能做一个嵌套,按照你的,我建了几个表和查询,你看看,符合你要求不

建表

create table a (id int,

name varchar(10));

create table b (

name varchar(10),

qty int);

插入数据

insert into a v另落岩alues (1,'张三')

insert into a values (2,'李四')

insert into a values (3,'王五')

insert into a values (4,'赵六')

去皮格干次史害insert into a values (5,'孙七')

insert into b values ('张三',100)

insert into b values ('张三',200)

insert into b values ('李四',500)

insert into b values ('王五',100)

insert into b values ('王五',20绿省犯部劳去少0)

insert into b values ('王五',500)

运行语句

select t.name,t.qty,row_number() ove360问答r (order by t.qty)

from

(select a.name,s端部um(b.qty) qty  

f天加村格手妒告县曾尼rom a left join b on a.name=查他沙百额b.name group by a.name术) t

 

结果截图

sqlserver 使用 ROW_NUMBER() OVER(order by xxx)进行分页查询

上一篇 麦轮胎官网和淘宝麦轮胎是一家吗
下一篇 香港本地人上在香国呀对大笔存哪并持洋布港哪里购物呢?
扫一扫,手机访问

扫一扫,手机浏览