SQL学习——分页查询

本文介绍了如何在SQL Server中使用ROW_NUMBER()函数实现分页查询,并针对文件记录加载进行了去重处理。通过示例展示了如何在`loadFilesRecord`接口中进行高效查询,同时避免了将`ORDER BY`语句置于子查询中的问题。
摘要由CSDN通过智能技术生成

SqlServer 实现分页查询

 sql = "select * from(select *,(ROW_NUMBER() over(order by MB001 asc))as newId from INVMB) as t  where newId between (sPage - 1) * pageCount + 1  and sPage * pageCount 

去重 分页 具体代码

// 加载文件受领/回收/被回收记录
app.post('/loadFilesRecord', async function (req, res) {
    let obj = req.body
    sql = `
    with temp as (
        select  文件编号,操作时间,状态 from 文件动向表 Where 工号 = '${obj.uNo}' And 文件动向表.备注 = '受领' And 文件动向表.状态 <> '' 
    )
    Select * FROM (
    Select ROW_NUMBER() OVER( Order By C.操作时间 Desc) newId, C.* FROM(
    Select B.文件编号,文件名称,客户,操作时间,B.状态 From (Select * From (Select ROW_NUMBER() OVER(PARTITION BY temp.文件编号 ORDER BY temp.操作时间 Desc ) rownum, temp.* From  temp ) A Where rownum = 1 ) B Left Join  文件记录表 On B.文件编号 = 文件记录表.文件编号 
    ) AS C  ) D Where newId between (${obj.sPage} - 1) * ${obj.pageCount} + 1  and ${obj.sPage} * ${obj.pageCount}
    `

    console.log("有人正在查历史文件记录",obj.uNo)
    result = await asyncFun.sqlFun(sql)
    res.json(result)
});

主要 order by 最好不要放在子查询中,因为报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值