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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章