SQLserver 查询分页,多表连结查询


SELECT * FROM(
SELECT row_number() OVER( ORDER BY a.price ASC )AS rowNum, COUNT(1) OVER() AS totalElements ,a.*
FROM  vProductSKU AS a 
WHERE a.sku_name  LIKE '%名%' 
)AS tb WHERE rownum BETWEEN 1 AND 300


SELECT * FROM(
SELECT row_number() OVER( ORDER BY a.price ASC )AS rowNum, COUNT(1) OVER() AS totalElements ,  a.*,  b.AttributeValueDesc
FROM vProductPackItemProductList AS a JOIN vProductSKU AS b 
ON b.product_sku=a.sku_id
WHERE  a.pack_describe LIKE '%价%' 
)AS tb WHERE rownum BETWEEN 1 AND 300


SELECT * FROM(
SELECT row_number() OVER( ORDER BY a.id ASC )AS rowNum, COUNT(1) OVER() AS totalElements ,a.*,b.AttributeValueDesc,b.sku_name
FROM tb_product_pack_item AS a JOIN vProductSKU AS b 
ON b.product_sku=a.sku_id
WHERE  a.remark LIKE '%数%' 
)AS tb WHERE rownum BETWEEN 1 AND 300

页数的巧妙换算:前端传入page 和size , page是第几页,从第一页开始,size 是每页显示多少条

因为:数据库数据是从第一条开始算起!!所以 使用 BETWEEN  AND 时要这样换算

int startPage=(page-1)*size+1;  
int endPage=page*size;

猜你喜欢

转载自blog.csdn.net/zxcvb12zxcvb12/article/details/82759476