SQL SERVER 2008 R2 的一种分页查询方法

可以使用 ROWER_NUMBER()函数来获取行数,但是这个函数不能给别名,只好放到子查询中,后来一想将所有条件放到子查询中,再根据rowernumber来获取指定页的方法来进行分页查询。

后来想到在子查询中增加 top 来限制查询的结果数,这样就不会查询多余的结果了。

这样写在Mybatis中语句也不会太长~~~

在ROW_NUMBER()函数的使用中,如果不是根据主键来排序(是这样吧,反正会报错~),则要增加OVER(order by field) 来指定排序的字段~~~

仅作个笔记,以后就不用再查来查去的

SELECT
    m2.*
FROM
    (
        SELECT
            TOP (90) mf.id,
            mf.nr,
            mf.fsr,
            ISNULL(yhf.ui_desc, '系统消息') fsrName,
            mf.fssj,
            mj.jsr,
            yhj.ui_desc jsrName,
            mj.zt,
            rownumber = ROW_NUMBER () OVER (ORDER BY fssj DESC)
        FROM
            dbo.hk_Mess_FS mf
        LEFT JOIN dbo.hk_Mess_JS mj ON mj.id = mf.id
        LEFT JOIN dbo.YH yhf ON yhf.ui_id = mf.fsr
        LEFT JOIN dbo.yh yhj ON yhj.ui_id = mj.jsr
        WHERE
            mf.fsr = 'admin'
        AND mj.zt = '1'
    ) AS m2
WHERE
    m2.rownumber BETWEEN 81
AND 90
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值