--利用子查询指定返回范围的查询
USE AdventureWorksselect * from (SELECT PSC.Name Category,p.Name Product,p.ListPrice,ROW_NUMBER() OVER(ORDER BY PSC.Name,P.ListPrice DESC) AS RowNumFROM Production.Product pJOIN Production.ProductSubCategory PSCON p.ProductSubCategoryID=PSC.ProductSubCategoryID) orderdatawhere RowNum between 25 and 30--通过ROW_NUMBER函数搭配子查询完成数据分页
CREATE PROC spGetPages2 @iRowCount INT,@iPageNo INTASSELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY ProductID ASC) RowNum,* FROM Production.Product ) OrderDataWHERE RowNum BETWEEN @iRowCount*(@iPageNo-1)+1 AND @iRowCount*@iPageNoORDER BY ProductID ASCGOEXEC spGetPages2 10,20--删除表中重复行
SELECT ProductID+0 ProductID, NameINTO myPD03FROM AdventureWorks.Production.Product--
SET NOCOUNT ONDECLARE @CNT INTSET @CNT =1WHILE @CNT<2001BEGININSERT myPD03SELECT ProductID, NameFROM AdventureWorks.Production.ProductSET @CNT =@CNT+1END--
SELECT * FROM myPD03ORDER BY ProductID;--
WITH Dups AS(SELECT *,ROW_NUMBER() OVER(PARTITION BY ProductID ORDER BY ProductID) AS RNFROM dbo.myPD03)DELETE FROM Dups WHERE RN > 1;
SQL语句
最新推荐文章于 2025-07-03 10:41:12 发布